이번시간에도 너무나 간단한 사용자 정의 함수를 예를 들어 만들어 보도록 하겠습니다.
아래와 같은 TABLE_OUTPUT 이라는 함수를 만들었습니다. CREATE FUNCTION TABLE_OUTPUT ( @NAME VARCHAR(30) ) RETURNS table AS RETURN ( SELECT BOARD_IDX , NAME , TITLE FROM BOARD1 WHERE NAME LIKE @NAME ) @NAME 인자값을 VARCHAR(30) 로 받아서 SELECT BOARD_IDX , NAME , TITLE FROM BOARD1 WHERE NAME=@NAME 를 처리한후 출력하는 함수 입니다. 이전에 공부했던 단일값과는 다르게 출력되는 형식은 TABLE 입니다. 여러분들도 실제로 만들어서 테스트 해보시기 바랍니다. 아주 아주 간단합니다. 아래 그림은 저의 서버에서 테스트한 결과 합니다. ![]() 시스템 함수는 함수의 소유자를 표시할 필요도 없고, 어떠한 디비에서나 동일하게 실행시킬수 있습니다. 하지만 사용자 함수는 그렇지 못한데 이는 사용자 정의 함수가 각 데이터베이스마다 개체로써 등록되기 때문에 항상 해당 데이터베이스에서 실행해야만 하고 소유자를 명시 해야만 사용할수 있다는 불편한 점이 있기 때문입니다. 시스템함수처럼 사용하고 싶으실때는 우선 Master 데이터베이스에 해당 사용자 정의 함수를 등록시키고, 함수 이름은 fn_ 으로 시작하도록 변경합니다. 그리고 함수의 소유자를 system_function_schema로 변경하면 이제 시스템 사용자 정의함수로 이용할수 있습니다. 소유자를 변경하는 예제는 아래와 같습니다. exec sp_changeobjectowner 'fn_v_area','system_function_schema' 유용한 정보가 되셨길 바라구요, 다음시간에는 조금더 신경써야 할 예제를 준비해 보도록 하겠습니다. 간단한 사용자정의 함수에 대한 내용은 여기에서 마무리 짓도록 하겠습니다.
|
|||||||||||