Partilhar via


Exibir funções definidas pelo usuário

Você pode obter informações sobre a definição ou as propriedades de uma função definida pelo usuário no SQL Server 2014 usando o SQL Server Management Studio ou o Transact-SQL. Talvez seja necessário observar a definição da função para entender como seus dados são derivados das tabelas de origem, ou consultar os dados definidos pela função.

Importante

Se você alterar o nome de um objeto referenciado por uma função, deverá modificar essa função, de modo que seu texto reflita o novo nome. Portanto, antes de renomear um objeto, exiba primeiramente as dependências do objeto para determinar se alguma função é afetada pela mudança proposta.

Neste tópico

Antes de começar

Segurança

Permissões

O uso de sys.sql_expression_dependencies para localizar todas as dependências em uma função exige a permissão VIEW DEFINITION no banco de dados e a permissão SELECT em sys.sql_expression_dependencies no banco de dados. As definições de objeto de sistema, como as retornadas em OBJECT_DEFINITION, são publicamente visíveis.

Como usar o SQL Server Management Studio.

Para mostrar as propriedades de uma função definida pelo usuário

  1. No Pesquisador de Objetos, clique no sinal de adição ao lado do banco de dados que contém a função na qual você deseja ver as propriedades e clique no sinal de adição para expandir a pasta Programabilidade .

  2. Clique no sinal de adição para expandir a pasta Funções .

  3. Clique no sinal de adição para expandir a pasta que contém a função na qual você deseja exibir as propriedades:

    • Table-valued Function

    • Função de valor escalar

    • Função de agregação

  4. Clique com o botão direito do mouse na função da qual você deseja ver as propriedades e selecione Propriedades.

    As propriedades a seguir aparecem na caixa de diálogo Propriedades de Função – function_name.

    Backup de banco de dados
    Nome do banco de dados que contém essa função.

    Servidor
    O nome da instância do servidor atual.

    Usuário
    Nome do usuário desta conexão.

    Data da criação
    Exibe a data em que a função foi criada.

    Executar como
    Contexto de execução da função.

    Nome
    Nome da função atual.

    Esquema
    Exibe o esquema que possui a função.

    Objeto do sistema
    Indica se a função é um objeto do sistema. Os valores são True e False.

    ANSI NULLs
    Indica se o objeto foi criado com a opção ANSI NULLs.

    Criptografado
    Indica se a função é criptografada. Os valores são True e False.

    Tipo de função
    O tipo de função definido pelo usuário.

    Identificador entre aspas
    Indica se o objeto foi criado com a opção de identificador entre aspas.

    Ligado a esquema
    Indica se a função é ligada a esquema. Os valores são True e False. Para obter informações sobre funções associadas ao esquema, veja a seção SCHEMABINDING de CREATE FUNCTION (Transact-SQL).

Usando o Transact-SQL

Para obter a definição e as propriedades de uma função

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

  3. Copie e cole um dos exemplos a seguir na janela de consulta e clique em Executar.

    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  
    

Para obter mais informações, consulte sys.sql_modules (Transact-SQL) e OBJECT_DEFINITION (Transact-SQL).

Para obter as dependências de uma função

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.

    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  
    

Para obter mais informações, consulte sys.sql_expression_dependencies (Transact-SQL) e sys.objects (Transact-SQL).