Share via


Anzeigen benutzerdefinierter Funktionen

Mehrere gespeicherte Systemprozeduren und Katalogsichten stellen Informationen zu gespeicherten Prozeduren bereit. Mit diesen können Sie Folgendes ausführen:

  • Anzeigen der Definition der Funktion. Das heißt, der Transact-SQL-Anweisungen, die zum Erstellen einer benutzerdefinierten Funktion verwendet werden. Dies kann hilfreich sein, wenn die Transact-SQL-Skriptdateien nicht vorliegen, die zum Erstellen der Funktion verwendet werden.

  • Abrufen von Informationen zu einer Funktion, z. B. ihr Schema, das Erstellungsdatum und die Parameter.

  • Auflisten der Objekte, die von der angegebenen Funktion verwendet werden, und der Objekte, die die angegebene Funktion verwenden. Mithilfe dieser Informationen können die Funktionen ermittelt werden, die betroffen sind, wenn ein Objekt in der Datenbank geändert oder aus ihr entfernt wird.

So zeigen Sie die Definition einer benutzerdefinierten Funktion an

So zeigen Sie Informationen zu einer benutzerdefinierten Funktion an

So zeigen Sie die Abhängigkeiten einer benutzerdefinierten Funktion an

Beispiele:

A. Verwenden von Systemkatalogsichten zum Zurückgeben von Informationen zu benutzerdefinierten Funktionen

Die folgenden Beispiele verwenden die Katalogsichten sys.objects und sys.parameters zum Zurückgeben von Informationen zu benutzerdefinierten Funktionen und ihren Parametern.

-- 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. Verwenden von OBJECT_DEFINITION

Das folgende Beispiel verwendet die Systemfunktion OBJECT_DEFINITION zum Zurückgeben der Definition der benutzerdefinierten Funktion dbo.ufnGetContactInformation.

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

C. Verwenden von sys.sql_expression_dependencies

Das folgende Beispiel verwendet die Katalogsichten sys.sql_expression_dependencies und sys.columns zum Zurückgeben der Tabellen- und Spaltennamen, von denen die benutzerdefinierte Funktion dbo.ufnGetContactInformation abhängt.

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');