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.
Hinweis |
---|
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.
Wichtig
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.
Wichtig
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;