Visualizzazione delle funzioni definite dall'utente
Numerose stored procedure e viste del catalogo di sistema forniscono informazioni relative alle stored procedure. Mediante tali stored procedure e viste è possibile:
Visualizzare la definizione della funzione, ovvero le istruzioni Transact-SQL di cui è costituita. Può risultare utile se non sono disponibili i file script Transact-SQL utilizzati per la creazione della funzione.
Recuperare informazioni su una funzione quali lo schema, la data di creazione e i parametri.
Visualizzare un elenco degli oggetti utilizzati dalla funzione specificata e degli oggetti che utilizzano la funzione. È possibile utilizzare queste informazioni per identificare le funzioni interessate dalla modifica o rimozione di un oggetto nel database.
Per visualizzare la definizione di una funzione definita dall'utente
Per visualizzare informazioni relative a una funzione definita dall'utente
Per visualizzare le dipendenze di una funzione definita dall'utente
Esempi
A. Utilizzo delle viste del catalogo di sistema per recuperare informazioni relative a una funzione definita dall'utente
Negli esempi seguenti vengono utilizzate le viste del catalogo sys.objects e sys.parameters per recuperare informazioni sulle funzioni definite dall'utente e i relativi parametri.
-- 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. Utilizzo di OBJECT_DEFINITION
Nell'esempio seguente la funzione di sistema OBJECT_DEFINITION viene utilizzata per recuperare la definizione della funzione definita dall'utente dbo.ufnGetContactInformation.
USE AdventureWorks2008R2;
GO
SELECT OBJECT_DEFINITION(OBJECT_ID('dbo.ufnGetContactInformation'));
GO
C. Utilizzo di sys.sql_expression_dependencies
Nell'esempio seguente vengono utilizzate le viste del catalogo sys.sql_expression_dependencies e sys.columns per visualizzare i nomi di tabella e di colonna da cui dipende la funzione definita dall'utente 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');
Vedere anche