SQL server 2000에서 새롭게 추가된 기능으로
다른 일반 프로그래밍에서처럼 자유롭게 함수를 만들고 이를 활용할 수 있다.
사용자 정의 함수의 유형에는 크게 3가지 (스칼라, 인라인 테이블, 다중문 테이블 함수)가 있다.
스칼라 함수
: 단일한 결과값을 리턴하는 함수로 일반적으로 가장 많이 사용되어지는 함수이다.
<작성시 유의 사항>
- 파라메터를 정의할 때 괄호로 묶어주어야 한다.
(상대적으로 프로시저는 괄호로 묶지 않는다.)
- 파라메터 정의 후 Returns문장과 리턴 될 값의 데이터 타입을 정의한다.
- Function Body는 Begin과 End문장으로 묶어 주어야 한다.
- Function Body 끝에 (End문장 전에) Return문장과 함께 Return될 값을 정의해 주어야 한다.
[스칼라 함수 (단일한 값을 리턴하는 함수) 작성구문]
Create Function 함수이름
(@파라미터 데이터타입, @파라미터 데이터타입,.....)
Returns 리턴값의 데이터타입
[WITH ENCRYPTION | WITH SCHEMABINDING]
[AS]
BEGIN
Function Body
Return 단일한 리턴값
END
인라인 테이블 함수
: 테이블 형태의 결과값을 리턴하는 함수.
인라인 테이블값의 함수에는 함수본문이 없으므로
테이블이 단일 Select문의 결과집합이라고 할 수 있다.
인라인 함수를 사용하면 매개 변수화된 뷰의 기능을 수행 할 수 있다.
<작성시 중의사항>
- Returns문 다음에 리턴되는 데이터타입으로 table을 정의한다.
- As문 다음에 Return문으로 Select문장을 포함한다.
[인라인 테이블 함수 작성구문]
Create function 함수이름
(@변수1 데이터타입,@변수2 데이터타입,...)
Returns table
[with encryption|with schemabinding]
[AS]
Return(select문)
다중문 테이블 함수
: 테이블 형태의 결과값을 리턴하는 함수로 기본적인 기능은 인라인 테이블 함수와 비슷하지만
리턴되어지는 테이블 형식을 직접 정의할 수 있다.
<작성시 주의사항>
- Return문 다음에 변수를 정의 하고 변수의 데이터 타입을 table로 정의하여
table자료형의 형식을 지정한다.
- Return문에서 정의한 테이블 변수에 데이터를 입력하기 위해서
insert, select문장을 사용한다.
- SQL문 다음에 Begin~End문장으로 Function Body를 묶어 주어야 하며
Function Body 마지막에 Return문장을 써주어야 한다.
[다중문 테이블 함수 작성구문]
Create function 함수이름
(@변수 데이터 타입,
@변수 데이터 타입)
returns @변수 table (field1,field2..)
[with encryption|with schemabinding]
[As]
Begin
insert @변수
select문
return
End
'IT_DBMS > MSSQL' 카테고리의 다른 글
트리거 예제 (0) | 2006.03.09 |
---|---|
트리거(Trigger) (0) | 2006.03.09 |
함수 작성 구문 (0) | 2006.03.09 |
프로시저 연습하기 3 (0) | 2006.03.08 |
프로시저 연습하기 2 (0) | 2006.03.08 |