Compartilhar via


Exibindo funções definidas pelo usuário

Várias exibições do catálogo e procedimentos armazenados no sistema fornecem informações sobre os procedimentos armazenados. Usando-os, você pode:

  • Consultar a definição da função. Ou seja, as instruções Transact-SQL usadas para criar uma função definida pelo usuário. Isso poderá ser útil se você não tiver os arquivos de script Transact-SQL usados para criar a função.

  • Obter informações sobre uma função, ou seja, sobre o esquema, quando foi criado e seus parâmetros.

  • Listar os objetos usados pela função especificada e os objetos que usam a função especificada. Essas informações podem ser usadas para identificar as funções afetadas pela alteração ou remoção de um objeto do banco de dados.

Para exibir a definição de uma função definida pelo usuário

Para exibir informações sobre uma função definida pelo usuário

Para exibir as dependências de uma função definida pelo usuário

Exemplos

A. Usando exibições do catálogo de sistema para retornar informações de função definidas pelo usuário

Os exemplos a seguir usam exibições do catálogo sys.objects e sys.parameters para retornar informações sobre funções definidas pelo usuário e sobre seus parâmetros.

-- Display metadata about the user-defined functions in AdventureWorks2008R2.
USE AdventureWorks2008R2;
GO
SELECT *
FROM sys.objects
WHERE type IN ('IF','TF','FN','FS','FT');
GO
-- Return parameters associated with the functions
SELECT o.name AS FunctionName, p.*
FROM sys.objects AS o
JOIN sys.parameters AS p ON o.object_id = p.object_ID
WHERE type IN ('IF','TF','FN','FS','FT');
GO

B. Usando OBJECT_DEFINITION

O exemplo a seguir utiliza a função de sistema OBJECT_DEFINITION para retornar a definição de função dbo.ufnGetContactInformationdefinida pelo usuário.

USE AdventureWorks2008R2;
GO
SELECT OBJECT_DEFINITION(OBJECT_ID('dbo.ufnGetContactInformation'));
GO

C. Usando sys.sql_expression_dependencies

O exemplo a seguir usa da exibições do catálogo sys.sql_expression_dependencies e sys.columns para retornar os nomes da tabela e da coluna de que depende a função definida pelo usuário dbo.ufnGetContactInformation.

USE AdventureWorks2008R2;
GO
SELECT OBJECT_NAME(d.referencing_id) AS referencing_entity, 
    OBJECT_NAME(referenced_id) AS referenced_entity, 
    referenced_minor_id AS referenced_column_id,
    c.name AS referenced_column 
FROM sys.sql_expression_dependencies AS d
JOIN sys.columns AS c ON c.object_id = d.referenced_id
    AND c.column_id = d.referenced_minor_id
WHERE d.referencing_id = OBJECT_ID(N'AdventureWorks2008R2.dbo.ufnGetContactInformation');