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 2012 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.

Observação importanteImportante

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

  • Para obter informações sobre uma função usando:

    SQL Server Management Studio

    Transact-SQL

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 requer a permissão VIEW DEFINITION no banco de dados e a permissão SELECT em sys.sql_expression_dependencies para o banco de dados. As definições de objeto de sistema, como as retornadas em OBJECT_DEFINITION, são publicamente visíveis.

Ícone de seta usado com o link Voltar ao Início[Top]

Usando 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.

    • Banco de Dados
      Nome do banco de dados que contém essa função.

    • Servidor
      O nome da instância do servidor atual.

    • User
      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, consulte a seção SCHEMABINDING em CREATE FUNCTION (Transact-SQL).

Ícone de seta usado com o link Voltar ao Início[Top]

Usando 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).

Ícone de seta usado com o link Voltar ao Início[Top]