사용자 정의 함수 보기

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 사용

사용자 정의 함수의 속성을 표시하려면

  1. 개체 탐색기에서 속성을 볼 함수가 포함된 데이터베이스 옆의 더하기 기호를 클릭한 다음 더하기 기호를 클릭하여 프로그래밍 기능 폴더를 확장합니다.

  2. 더하기 기호를 클릭하여 함수 폴더를 확장합니다.

  3. 더하기 기호를 클릭하여 속성을 볼 함수가 포함된 폴더를 확장합니다.

    • 테이블 반환 함수

    • 스칼라 반환 함수

    • Aggregate 함수

  4. 속성을 볼 함수를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

    다음 속성이 함수 속성 – function_name 대화 상자에 표시됩니다.

    • 데이터베이스
      이 함수를 포함하는 데이터베이스의 이름입니다.

    • 서버
      현재 서버 인스턴스의 이름입니다.

    • 사용자
      이 연결을 사용하는 사용자의 이름입니다.

    • 만든 날짜
      함수를 만든 날짜를 표시합니다.

    • 다음으로 실행
      함수에 대한 실행 컨텍스트입니다.

    • 이름
      현재 함수의 이름입니다.

    • 스키마
      함수를 소유하는 스키마를 표시합니다.

    • 시스템 개체
      함수가 시스템 개체인지 여부를 나타냅니다. 사용 가능한 값은 True와 False입니다.

    • ANSI NULL
      개체가 ANSI NULL 옵션으로 생성되었는지 여부를 나타냅니다.

    • 암호화됨
      함수를 암호화하는지 여부를 나타냅니다. 사용 가능한 값은 True와 False입니다.

    • 함수 유형
      사용자 정의 함수의 유형입니다.

    • 따옴표 붙은 식별자
      개체가 따옴표 붙은 식별자 옵션으로 생성되었는지 여부를 나타냅니다.

    • 스키마 바운드
      스키마 바운드 함수인지 여부를 나타냅니다. 사용 가능한 값은 True와 False입니다. 스키마 바운드 함수에 대한 자세한 내용은 CREATE FUNCTION(Transact-SQL)의 SCHEMABINDING 섹션을 참조하십시오.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

Transact-SQL 사용

함수의 정의 및 속성을 가져오려면

  1. 개체 탐색기에서 데이터베이스 엔진 인스턴스에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.

  3. 다음 예 중 하나를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.

    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)을 참조하십시오.

함수의 종속성을 가져오려면

  1. 개체 탐색기에서 데이터베이스 엔진 인스턴스에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.

    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]