- 스칼라 함수 작성구문 -
Create Function 함수이름
(파라미터 데이터타입,
파라미터 데이터타입,.....)
Returns 리턴값의 데이터타입
[WITH ENCRYPTION | WITH
SCHEMABINDING]
[AS]
BEGIN
Function Body
Return 단일한
리턴값
END
------------------------------------------------------------------------------
[예제]
create function
F_cal
(
@AA
int,
@BB int
)
/*()가 들어가야한다.*/
returns int
as
begin
declare @gob
int
set @gob = @AA*@BB
return
@gob
end
go
select dbo.F_cal(5,5) 결과값 /*결과값은 출력될 테이블의 컬럼명으로 들어감*/
/* 출력부분 사용자 정의 함수를 사용할 때 소유주명(dbo)도 적어줘야 한다. */
=====================================================================================
- 인라인 테이블 함수 작성구문 -
Create function 함수이름
(@변수1,@변수2,...)
Returns table
[with encryption|with schemabinding]
[AS]
Return(select문)
-------------------------------------------------------------------------
[예제]
use northwind
select * from customers
/*테이블 확인*/
create function F_wind
(
@a varchar(10)
)
returns table
as
return
(
select customerID,
companyname
from
customers
where
region = @a
)
go
/*인라인 테이블 함수 정의*/
/*결과값 출력*/
select * from dbo.F_wind('BC') /*①*/
select customerID, companyname from customers where region = 'bc' /*②*/
/*①과 ②의 출력 결과는 같다.*/
======================================================================================
- 다중문 테이블 함수 작성구문 -
Create function 함수이름
(@변수 데이터 타입,
@변수 데이터 타입)
returns @변수 table (field1,field2..)
[with encryption|with schemabinding]
[As]
Begin
insert @변수
select문
return
End
--------------------------------------------------------------------------------------
[예제]
create function
F_multi
(@관계 char(10))
returns @연락처 table
(
이름 char(8) primary
key,
관계
char(10),
핸드폰번호
char(15),
우편번호
char(8),
주소
varchar(50)
)
as
begin
insert @연락처
select
이름,관계,핸드폰번호,우편번호,주소
from 개인신상
where 관계 =
@관계
return
end
/*다중문 테이블 함수 정의*/
select * from dbo.F_multi('고객')
where 주소 like '미국%'
/*결과값 출력*/
'IT_DBMS > MSSQL' 카테고리의 다른 글
트리거(Trigger) (0) | 2006.03.09 |
---|---|
사용자 정의 함수 (0) | 2006.03.09 |
프로시저 연습하기 3 (0) | 2006.03.08 |
프로시저 연습하기 2 (0) | 2006.03.08 |
프로시저 연습하기 1 (0) | 2006.03.08 |