사용자 정의 함수 보기View User-defined Functions

SQL Server 2017SQL Server 2017 에서 SQL Server Management StudioSQL Server Management Studio 또는 Transact-SQLTransact-SQL을 사용하여 사용자 정의 함수의 정의 또는 속성에 대한 정보를 얻을 수 있습니다.You can gain information about the definition or properties of a user-defined function in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. 함수 정의를 보면 어떻게 데이터가 원본 테이블에서 파생되었는지 알 수 있고 함수에서 정의한 데이터를 볼 수 있습니다.You may need to see the definition of the function to understand how its data is derived from the source tables or to see the data defined by the function.

중요

함수가 참조하는 개체의 이름을 변경하려면 함수를 수정하여 함수의 텍스트에 새 이름이 적용되도록 해야 합니다.If you change the name of an object referenced by a function, you must modify that function so that its text reflects the new name. 따라서 개체 이름을 바꾸기 전에 먼저 개체의 종속성을 표시하여 영향을 받는 함수가 있는지 확인해야 합니다.Therefore, before renaming an object, display the dependencies of the object first to determine if any functions are affected by the proposed change.

항목 내용In This Topic

시작하기 전 주의 사항 Before You Begin

보안 Security

사용 권한 Permissions

sys.sql_expression_dependencies 를 사용하여 함수에 대한 모든 종속성을 찾으려면 데이터베이스에 대한 VIEW DEFINITION 권한과 데이터베이스의 sys.sql_expression_dependencies 에 대한 SELECT 권한이 있어야 합니다.Using sys.sql_expression_dependencies to find all the dependencies on a function requires VIEW DEFINITION permission on the database and SELECT permission on sys.sql_expression_dependencies for the database. OBJECT_DEFINITION에 반환되는 정의와 같은 시스템 개체 정의는 모두에게 표시됩니다.System object definitions, like the ones returned in OBJECT_DEFINITION, are publicly visible.

SQL Server Management Studio 사용 Using SQL Server Management Studio

사용자 정의 함수의 속성을 표시하려면To show a user-defined function’s properties

  1. 개체 탐색기에서 속성을 볼 함수가 포함된 데이터베이스 옆의 더하기 기호를 클릭한 다음 더하기 기호를 클릭하여 프로그래밍 기능 폴더를 확장합니다.In Object Explorer, click the plus sign next to the database that contains the function to which you want to view the properties, and then click the plus sign to expand the Programmability folder.

  2. 더하기 기호를 클릭하여 함수 폴더를 확장합니다.Click the plus sign to expand the Functions folder.

  3. 더하기 기호를 클릭하여 속성을 볼 함수가 포함된 폴더를 확장합니다.Click the plus sign to expand the folder that contains the function to which you want to view the properties:

    • 테이블 반환 함수Table-valued Function

    • 스칼라 반환 함수Scalar-valued Function

    • Aggregate 함수Aggregate Function

  4. 속성을 볼 함수를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.Right-click the function of which you want to view the properties and select Properties.

    다음 속성이 함수 속성 – function_name 대화 상자에 표시됩니다.The following properties appear in the Function Properties – function_name dialog box.

    데이터베이스Database
    이 함수를 포함하는 데이터베이스의 이름입니다.The name of the database containing this function.

    ServerServer
    현재 서버 인스턴스의 이름입니다.The name of the current server instance.

    사용자User
    이 연결을 사용하는 사용자의 이름입니다.The name of the user of this connection.

    만든 날짜Created date
    함수를 만든 날짜를 표시합니다.Displays the date the function was created.

    다음으로 실행Execute As
    함수에 대한 실행 컨텍스트입니다.Execution context for the function.

    이름Name
    현재 함수의 이름입니다.The name of the current function.

    스키마Schema
    함수를 소유하는 스키마를 표시합니다.Displays the schema that owns the function.

    시스템 개체System object
    함수가 시스템 개체인지 여부를 나타냅니다.Indicates whether the function is a system object. 사용 가능한 값은 True와 False입니다.Values are True and False.

    ANSI NULLANSI NULLs
    개체가 ANSI NULL 옵션으로 생성되었는지 여부를 나타냅니다.Indicates if the object was created with the ANSI NULLs option.

    암호화됨Encrypted
    함수를 암호화하는지 여부를 나타냅니다.Indicates whether the function is encrypted. 사용 가능한 값은 True와 False입니다.Values are True and False.

    함수 유형Function Type
    사용자 정의 함수의 유형입니다.The type of user defined function.

    따옴표 붙은 식별자Quoted identifier
    개체가 따옴표 붙은 식별자 옵션으로 생성되었는지 여부를 나타냅니다.Indicates if the object was created with the quoted identifier option.

    스키마 바운드Schema bound
    스키마 바운드 함수인지 여부를 나타냅니다.Indicates whether the function is schema-bound. 사용 가능한 값은 True와 False입니다.Values are True and False. 스키마 바운드 함수에 대한 자세한 내용은 CREATE FUNCTION(Transact-SQL)의 SCHEMABINDING 섹션을 참조하세요.For information about schema-bound functions, see the SCHEMABINDING section of CREATE FUNCTION (Transact-SQL).

Transact-SQL 사용 Using Transact-SQL

함수의 정의 및 속성을 가져오려면To get the definition and properties of a function

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예 중 하나를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste one of the following examples into the query window and click Execute.

    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)을 참조하세요.For more information, see sys.sql_modules (Transact-SQL) and OBJECT_DEFINITION (Transact-SQL).

함수의 종속성을 가져오려면To get the dependencies of a function

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute.

    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)를 참조하세요.For more information, see sys.sql_expression_dependencies (Transact-SQL) and sys.objects (Transact-SQL).