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.
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
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.
[Top]
Usando o SQL Server Management Studio
Para mostrar as propriedades de uma função definida pelo usuário
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.
Clique no sinal de adição para expandir a pasta Funções.
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
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).
[Top]
Usando Transact-SQL
Para 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, clique em Nova Consulta.
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
No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.
Na barra Padrão, clique em Nova Consulta.
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).
[Top]