사용자 정의 함수
개념
-
저장 프로시저와 조금 비슷해 보이지만,
일반적인 프로그래밍 언어에서 사용되는 함수와 같이 복잡한 프로그래밍이 가능함 -
함수는
RETURN
문에 의해서 특정 값을 되돌려 줌
저장 프로시저
EXEC
에 의해서 실행됨
함수
SELECT
문에 포함되어 실행됨
(예외도 있음)
생성 / 수정 / 삭제
스칼라함수 정의 형식
CREATE FUNCTION [ schema_name. ] function_name
(
[
{ @parameter_name [ AS ][ type_schema_name. ]
parameter_data_type
[ = default ][ READONLY ]}
[,...n]
]
)
RETURNS return_data_type
[ WITH <function_option> [,...n] ]
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
사용된 함수
CREATE FUNCTION ufn_getAge(@byear INT)
RETURNS INT
AS
BEGIN
DECLARE @age INT
SET @age = YEAR(GETDATE()) - @byear
RETURN(@age)
END
GO
함수의 종류
기본 제공 함수
SQL Server가 제공해 주는 시스템 함수
사용자 정의 스칼라함수
Return문에 의해서 하나의 값을 돌려주는 함수
사용자 정의 테이블 반환 함수
1. 인라인 테이블 반환 함수
- 간단히 테이블을 돌려주는 함수로 뷰와 비슷한 역할
CREATE FUNCTION 함수이름(매개변수)
RETURNS TABLE
AS
RETURN (
단일 SELECT 문장;
)