Freigeben über


ROUTINES (Transact-SQL)

Gibt eine Zeile für jede gespeicherte Prozedur und Funktion zurück, auf die der aktuelle Benutzer in der aktuellen Datenbank zugreifen kann. Die Spalten, die den Rückgabewert beschreiben, sind nur auf Funktionen anwendbar. Für gespeicherte Prozeduren sind diese Spalten NULL.

Geben Sie zum Abrufen von Informationen aus diesen Sichten den vollqualifizierten Namen (INFORMATION_SCHEMA.view_name) an.

HinweisHinweis

Die ROUTINE_DEFINITION-Spalte enthält die Quellanweisungen, die die Funktion oder die gespeicherte Prozedur erstellt haben. Diese Quellanweisungen enthalten wahrscheinlich eingebettete Wagenrücklaufzeichen. Wenn Sie diese Spalte an eine Anwendung zurückgeben, die die Ergebnisse in einem Textformat anzeigt, beeinflussen die eingebetteten Wagenrücklaufzeichen in den Ergebnissen von ROUTINE_DEFINITION möglicherweise die Formatierung des gesamten Resultsets. Wenn Sie die ROUTINE_DEFINITION-Spalte auswählen, müssen Sie aufgrund der eingebetteten Wagenrücklaufzeichen eine Anpassung vornehmen, indem Sie beispielsweise das Resultset in ein Raster oder die ROUTINE_DEFINITION-Spalte in ein eigenes Textfeld zurückgeben.

Spaltenname

Datentyp

Beschreibung

SPECIFIC_CATALOG

nvarchar(128)

Spezifischer Name des Katalogs. Dieser Name ist derselbe wie für ROUTINE_CATALOG.

SPECIFIC_SCHEMA

nvarchar(128)

Spezifischer Name des Schemas.

Wichtiger HinweisWichtig
Verwenden Sie keine INFORMATION_SCHEMA-Sichten, um das Schema eines Objekts zu bestimmen. Die einzige zuverlässige Art, das Schema eines Objekts zu finden, ist das Abfragen der sys.objects-Katalogsicht oder der OBJECT_SCHEMA_NAME-Funktion.

SPECIFIC_NAME

nvarchar(128)

Spezifischer Name des Katalogs. Dieser Name ist derselbe wie für ROUTINE_NAME.

ROUTINE_CATALOG

nvarchar(128)

Katalogname der Funktion.

ROUTINE_SCHEMA

nvarchar(128)

Name des Schemas, das diese Funktion enthält.

Wichtiger HinweisWichtig
Verwenden Sie keine INFORMATION_SCHEMA-Sichten, um das Schema eines Objekts zu bestimmen. Die einzige zuverlässige Art, das Schema eines Objekts zu finden, ist das Abfragen der sys.objects-Katalogsicht oder der OBJECT_SCHEMA_NAME-Funktion.

ROUTINE_NAME

nvarchar(128)

Name der Funktion.

ROUTINE_TYPE

nvarchar(20)

Gibt PROCEDURE für gespeicherte Prozeduren und FUNCTION für Funktionen zurück.

MODULE_CATALOG

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

MODULE_SCHEMA

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

MODULE_NAME

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

UDT_CATALOG

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

UDT_SCHEMA

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

UDT_NAME

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

DATA_TYPE

nvarchar(128)

Datentyp des Rückgabewerts der Funktion. Gibt bei einer Tabellenwertfunktion table zurück.

CHARACTER_MAXIMUM_LENGTH

int

Maximale Länge in Zeichen, wenn der Rückgabetyp ein Zeichentyp ist.

-1 für Daten vom Typ xml und hohe Werte.

CHARACTER_OCTET_LENGTH

int

Maximale Länge in Bytes, wenn der Rückgabetyp ein Zeichentyp ist.

-1 für Daten vom Typ xml und hohe Werte.

COLLATION_CATALOG

nvarchar(128)

Es wird immer NULL zurückgegeben.

COLLATION_SCHEMA

nvarchar(128)

Es wird immer NULL zurückgegeben.

COLLATION_NAME

nvarchar(128)

Sortierungsname des Rückgabewerts. Für Nicht-Zeichentypen wird NULL zurückgegeben.

CHARACTER_SET_CATALOG

nvarchar(128)

Es wird immer NULL zurückgegeben.

CHARACTER_SET_SCHEMA

nvarchar(128)

Es wird immer NULL zurückgegeben.

CHARACTER_SET_NAME

nvarchar(128)

Name des Zeichensatzes des Rückgabewerts. Für Nicht-Zeichentypen wird NULL zurückgegeben.

NUMERIC_PRECISION

smallint

Numerische Genauigkeit des Rückgabewerts. Für nicht-numerische Typen wird NULL zurückgegeben.

NUMERIC_PRECISION_RADIX

smallint

Numerische Basis der Genauigkeit des Rückgabewerts. Für nicht-numerische Typen wird NULL zurückgegeben.

NUMERIC_SCALE

smallint

Dezimalstellen des Rückgabewerts. Für nicht-numerische Typen wird NULL zurückgegeben.

DATETIME_PRECISION

smallint

Fraktionale Genauigkeit von einer Sekunde, wenn der Rückgabewert vom Datentyp datetime ist. Andernfalls wird NULL zurückgegeben.

INTERVAL_TYPE

nvarchar(30)

NULL. Zur künftigen Verwendung reserviert.

INTERVAL_PRECISION

smallint

NULL. Zur künftigen Verwendung reserviert.

TYPE_UDT_CATALOG

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

TYPE_UDT_SCHEMA

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

TYPE_UDT_NAME

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

SCOPE_CATALOG

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

SCOPE_SCHEMA

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

SCOPE_NAME

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

MAXIMUM_CARDINALITY

bigint

NULL. Zur künftigen Verwendung reserviert.

DTD_IDENTIFIER

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

ROUTINE_BODY

nvarchar(30)

Gibt SQL für eine Transact-SQL-Funktion und EXTERNAL für eine extern geschriebene Funktion zurück.

Funktionen sind immer SQL.

ROUTINE_DEFINITION

nvarchar(4000)

Gibt die ersten 4000 Zeichen des Definitionstexts der Funktion oder gespeicherten Prozedur zurück, wenn die Funktion oder gespeicherte Prozedur nicht verschlüsselt ist. Andernfalls wird NULL zurückgegeben.

Um zu gewährleisten, dass Sie die vollständige Definition erhalten, fragen Sie die OBJECT_DEFINITION-Funktion oder die definition-Spalte in der Katalogsicht sys.sql_modules ab.

EXTERNAL_NAME

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

EXTERNAL_LANGUAGE

nvarchar(30)

NULL. Zur künftigen Verwendung reserviert.

PARAMETER_STYLE

nvarchar(30)

NULL. Zur künftigen Verwendung reserviert.

IS_DETERMINISTIC

nvarchar(10)

Gibt YES zurück, wenn die Routine deterministisch ist.

Gibt NO zurück, wenn die Routine nicht deterministisch ist.

Für gespeicherte Prozeduren wird immer NO zurückgegeben.

SQL_DATA_ACCESS

nvarchar(30)

Gibt einen der folgenden Werte zurück:

NONE = Die Funktion enthält keine SQL-Anweisungen.

CONTAINS = Die Funktion enthält möglicherweise SQL-Anweisungen.

READS = Die Funktion liest möglicherweise SQL-Daten.

MODIFIES = Die Funktion ändert möglicherweise SQL-Daten.

Gibt für alle Funktionen READS und für alle gespeicherten Prozeduren MODIFIES zurück.

IS_NULL_CALL

nvarchar(10)

Zeigt an, ob die Routine aufgerufen wird, wenn eines der Argumente NULL ist.

SQL_PATH

nvarchar(128)

NULL. Zur künftigen Verwendung reserviert.

SCHEMA_LEVEL_ROUTINE

nvarchar(10)

Gibt YES zurück, wenn es sich um eine Funktion auf Schemaebene handelt, oder NO, wenn es keine Funktion auf Schemaebene ist.

Es wird immer YES zurückgegeben.

MAX_DYNAMIC_RESULT_SETS

smallint

Maximale Anzahl der dynamischen Resultsets, die durch die Routine zurückgegeben werden.

Gibt bei Funktionen 0 zurück.

IS_USER_DEFINED_CAST

nvarchar(10)

Gibt YES zurück, wenn es sich um eine benutzerdefinierte Typumwandlungsfunktion handelt, oder NO, wenn es keine benutzerdefinierte Typumwandlungsfunktion ist.

Es wird immer NO zurückgegeben.

IS_IMPLICITLY_INVOCABLE

nvarchar(10)

Gibt YES zurück, wenn die Routine implizit aufgerufen werden kann, und NO, wenn die Funktion nicht implizit aufgerufen werden kann.

Es wird immer NO zurückgegeben.

CREATED

datetime

Zeitpunkt, zu dem die Routine erstellt wurde.

LAST_ALTERED

datetime

Zeitpunkt der letzten Änderung der Funktion.

Beispiele

Im folgenden Beispiel werden Informationen über jede gespeicherte Prozedur oder benutzerdefinierte Funktion in der Datenbank zurückgegeben.

USE AdventureWorks;
GO

SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, 
       ROUTINE_DEFINITION AS [First 4000 characters], CREATED, LAST_ALTERED
FROM INFORMATION_SCHEMA.ROUTINES
ORDER BY ROUTINE_TYPE;