Share via


Exibir funções definidas pelo usuário

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Você pode obter informações sobre a definição ou as propriedades de uma função definida pelo usuário no SQL Server 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.

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.

Permissões

Usar 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 para o banco de dados. As definições de objeto de sistema, como as retornadas em OBJECT_DEFINITION, são publicamente visíveis.

Usar o SQL Server Management Studio

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

  1. No Pesquisador de Objetos, selecione o sinal de adição ao lado do banco de dados que contém a função cujas propriedades você deseja visualizar e, em seguida, selecione o sinal de ad[ para expandir a pasta Programabilidade.

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

  3. Selecione o sinal de adição para expandir a pasta que contém a função na qual você deseja visualizar 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.

    Nome da função Descrição
    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 de 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).

Usar o Transact-SQL

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, selecione Nova Consulta.

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

    O exemplo de código a seguir obtém o nome da função, a definição e as propriedades relevantes.

    USE AdventureWorks2022;
    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
    

    O exemplo de código a seguir obtém a definição da função de exemplo dbo.ufnGetProductDealerPrice.

    USE AdventureWorks2022;
    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).

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, selecione Nova Consulta.

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

    USE AdventureWorks2022;
    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).