USE sample
GO
-- 시스템 테이블을 직접 수정할 수 있도록 설정
EXEC sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
GO
-- 함수는 master 데이타베이스 생성, 소유자는 system_function_schema 지정
USE master
GO
CREATE FUNCTION system_function_schema.fn_greatest ( @x bigint, @y bigint )
RETURNS bigint
AS
BEGIN
RETURN ( CASE WHEN @x>@y THEN @x ELSE @y END )
END
GO
CREATE FUNCTION system_function_schema.fn_least( @x bigint, @y bigint )
RETURNS bigint
AS
BEGIN
RETURN ( CASE WHEN @x<@y THEN @x ELSE @y END )
END
GO
-- 시스템 테이블을 직접 수정할 수 없도록 0으로 변경(반드시 수행)
EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
GO
-- 생성한 시스템 함수는 모든 데이타베이스에서 호출 가능
USE sample
GO
SELECT fn_greatest(989, 998), fn_least(989, 998)
GO
결과
998 989
/* 시스템 함수 조회하기 */
USE master
GO
SELECT name , OBJECTPROPERTY(id, 'IsScalarFunction'), *
FROM sysobjects
WHERE uid = USER_ID('system_function_schema')
AND (OBJECTPROPERTY(id, 'IsScalarFunction')=1
OR OBJECTPROPERTY(id, 'IsTableFunction')=1
OR OBJECTPROPERTY(id, 'IsInlineFunction')=1 )
GO
'데이터베이스 > SQL Server' 카테고리의 다른 글
SQL Agent Service 온라인 실패 - 메모리 페이지 잠금 (0) | 2008.09.28 |
---|---|
데이터베이스 산출물(스키마 내역서) Export (0) | 2008.06.09 |
INFORMATION 스키마 뷰 생성 (0) | 2008.05.08 |
사용자 계정 관리 (0) | 2008.05.08 |
[펌] MSSQL 모든 Table Schema를 구하는 스크립트 (0) | 2008.05.08 |