사용자 정의 함수 보기
SQL Server 2012에서 SQL Server Management Studio 또는 Transact-SQL을 사용하여 사용자 정의 함수의 정의 또는 속성에 대한 정보를 얻을 수 있습니다. 함수 정의를 보면 어떻게 데이터가 원본 테이블에서 파생되었는지 알 수 있고 함수에서 정의한 데이터를 볼 수 있습니다.
중요 |
---|
함수가 참조하는 개체의 이름을 변경하려면 함수를 수정하여 함수의 텍스트에 새 이름이 적용되도록 해야 합니다. 따라서 개체 이름을 바꾸기 전에 먼저 개체의 종속성을 표시하여 영향을 받는 함수가 있는지 확인해야 합니다. |
항목 내용
시작하기 전에:
보안
함수에 대한 정보를 얻으려면:
SQL Server Management Studio
Transact-SQL
시작하기 전에
보안
사용 권한
sys.sql_expression_dependencies를 사용하여 함수에 대한 모든 종속성을 찾으려면 데이터베이스에 대한 VIEW DEFINITION 권한과 데이터베이스의 sys.sql_expression_dependencies에 대한 SELECT 권한이 있어야 합니다. OBJECT_DEFINITION에 반환되는 정의와 같은 시스템 개체 정의는 모두에게 표시됩니다.
[Top]
SQL Server Management Studio 사용
사용자 정의 함수의 속성을 표시하려면
개체 탐색기에서 속성을 볼 함수가 포함된 데이터베이스 옆의 더하기 기호를 클릭한 다음 더하기 기호를 클릭하여 프로그래밍 기능 폴더를 확장합니다.
더하기 기호를 클릭하여 함수 폴더를 확장합니다.
더하기 기호를 클릭하여 속성을 볼 함수가 포함된 폴더를 확장합니다.
테이블 반환 함수
스칼라 반환 함수
Aggregate 함수
속성을 볼 함수를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
다음 속성이 함수 속성 – function_name 대화 상자에 표시됩니다.
데이터베이스
이 함수를 포함하는 데이터베이스의 이름입니다.서버
현재 서버 인스턴스의 이름입니다.사용자
이 연결을 사용하는 사용자의 이름입니다.만든 날짜
함수를 만든 날짜를 표시합니다.다음으로 실행
함수에 대한 실행 컨텍스트입니다.이름
현재 함수의 이름입니다.스키마
함수를 소유하는 스키마를 표시합니다.시스템 개체
함수가 시스템 개체인지 여부를 나타냅니다. 사용 가능한 값은 True와 False입니다.ANSI NULL
개체가 ANSI NULL 옵션으로 생성되었는지 여부를 나타냅니다.암호화됨
함수를 암호화하는지 여부를 나타냅니다. 사용 가능한 값은 True와 False입니다.함수 유형
사용자 정의 함수의 유형입니다.따옴표 붙은 식별자
개체가 따옴표 붙은 식별자 옵션으로 생성되었는지 여부를 나타냅니다.스키마 바운드
스키마 바운드 함수인지 여부를 나타냅니다. 사용 가능한 값은 True와 False입니다. 스키마 바운드 함수에 대한 자세한 내용은 CREATE FUNCTION(Transact-SQL)의 SCHEMABINDING 섹션을 참조하십시오.
[Top]
Transact-SQL 사용
함수의 정의 및 속성을 가져오려면
개체 탐색기에서 데이터베이스 엔진 인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 클릭합니다.
다음 예 중 하나를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.
USE AdventureWorks2012; GO -- Get the function name, definition, and relevant properties SELECT sm.object_id, OBJECT_NAME(sm.object_id) AS object_name, o.type, o.type_desc, sm.definition, sm.uses_ansi_nulls, sm.uses_quoted_identifier, sm.is_schema_bound, sm.execute_as_principal_id -- using the two system tables sys.sql_modules and sys.objects FROM sys.sql_modules AS sm JOIN sys.objects AS o ON sm.object_id = o.object_id -- from the function 'dbo.ufnGetProductDealerPrice' WHERE sm.object_id = OBJECT_ID('dbo.ufnGetProductDealerPrice') ORDER BY o.type; GO USE AdventureWorks2012; GO -- Get the definition of the function dbo.ufnGetProductDealerPrice SELECT OBJECT_DEFINITION (OBJECT_ID('dbo.ufnGetProductDealerPrice')) AS ObjectDefinition; GO
자세한 내용은 sys.sql_modules(Transact-SQL) 및 OBJECT_DEFINITION(Transact-SQL)을 참조하십시오.
함수의 종속성을 가져오려면
개체 탐색기에서 데이터베이스 엔진 인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 클릭합니다.
다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.
USE AdventureWorks2012; GO -- Get all of the dependency information SELECT OBJECT_NAME(sed.referencing_id) AS referencing_entity_name, o.type_desc AS referencing_desciption, COALESCE(COL_NAME(sed.referencing_id, sed.referencing_minor_id), '(n/a)') AS referencing_minor_id, sed.referencing_class_desc, sed.referenced_class_desc, sed.referenced_server_name, sed.referenced_database_name, sed.referenced_schema_name, sed.referenced_entity_name, COALESCE(COL_NAME(sed.referenced_id, sed.referenced_minor_id), '(n/a)') AS referenced_column_name, sed.is_caller_dependent, sed.is_ambiguous -- from the two system tables sys.sql_expression_dependencies and sys.object FROM sys.sql_expression_dependencies AS sed INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id -- on the function dbo.ufnGetProductDealerPrice WHERE sed.referencing_id = OBJECT_ID('dbo.ufnGetProductDealerPrice'); GO
자세한 내용은 sys.sql_expression_dependencies(Transact-SQL) 및 sys.objects(Transact-SQL)를 참조하십시오.
[Top]