Exibir funções definidas pelo usuário
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instâ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
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.
Selecione o sinal de adição para expandir a pasta Funções.
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
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 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
eFalse
.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
eFalse
.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
No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.
Na barra Padrão, selecione Nova Consulta.
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
No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.
Na barra Padrão, selecione Nova Consulta.
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_description, 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).