REFERENTIAL_CONSTRAINTS (Transact-SQL)
Gibt eine Zeile für jede FOREIGN KEY-Einschränkung in der aktuellen Datenbank zurück. Diese Informationsschemasicht gibt Informationen zu den Objekten zurück, für die der aktuelle Benutzer über Berechtigungen verfügt.
Geben Sie zum Abrufen von Informationen aus diesen Sichten den vollqualifizierten Namen (INFORMATION_SCHEMA.view_name) an.
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
CONSTRAINT_CATALOG |
nvarchar(128) |
Einschränkungsqualifizierer |
CONSTRAINT_SCHEMA |
nvarchar(128) |
Name des Schemas, das die Einschränkung 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.
|
CONSTRAINT_NAME |
sysname |
Einschränkungsname |
UNIQUE_CONSTRAINT_CATALOG |
nvarchar(128) |
Der UNIQUE-Einschränkungsqualifizierer. |
UNIQUE_CONSTRAINT_SCHEMA |
nvarchar(128) |
Der Name des Schemas, das die UNIQUE-Einschränkung 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.
|
UNIQUE_CONSTRAINT_NAME |
sysname |
UNIQUE-Einschränkung |
MATCH_OPTION |
varchar(7) |
Referenzielle Bedingungen für die Übereinstimmung von Einschränkungen. Es wird immer SIMPLE zurückgegeben. Dies bedeutet, dass keine Übereinstimmung definiert ist. Die Bedingung wird als Übereinstimmung betrachtet, wenn eine der folgenden Bedingungen zutrifft:
|
UPDATE_RULE |
varchar(11) |
Die Aktion, die ausgeführt wird, wenn eine Transact-SQL-Anweisung die referenzielle Integrität verletzt, die durch diese Einschränkung definiert ist. Gibt einen der folgenden Werte zurück:
Wenn für diese Einschränkung NO ACTION für ON UPDATE angegeben ist, wird die Aktualisierung des Primärschlüssels, auf den in der Einschränkung verwiesen wird, nicht an den Fremdschlüssel weitergegeben. Wenn diese Aktualisierung des Primärschlüssels zu einer Verletzung der referenziellen Integrität führt, weil mindestens ein Fremdschlüssel denselben Wert aufweist, nimmt SQL Server keine Änderung an der übergeordneten Tabelle und den verweisenden Tabellen vor. Außerdem löst SQL Server einen Fehler aus. Wenn für diese Einschränkung CASCADE für ON UPDATE angegeben ist, werden alle Änderungen des Primärschlüsselwerts automatisch an den Fremdschlüsselwert weitergegeben. |
DELETE_RULE |
varchar(11) |
Die Aktion, die ausgeführt wird, wenn eine Transact-SQL-Anweisung die referenzielle Integrität verletzt, die durch diese Einschränkung definiert ist. Gibt einen der folgenden Werte zurück:
Wenn für diese Einschränkung NO ACTION für ON DELETE angegeben ist, wird das Löschen des Primärschlüssels, auf den in der Einschränkung verwiesen wird, nicht an den Fremdschlüssel weitergegeben. Wenn das Löschen des Primärschlüssels zu einer Verletzung der referenziellen Integrität führt, weil mindestens ein Fremdschlüssel denselben Wert aufweist, nimmt SQL Server keine Änderung an der übergeordneten Tabelle und den verweisenden Tabellen vor. Außerdem löst SQL Server einen Fehler aus. Wenn für diese Einschränkung CASCADE für ON DELETE angegeben ist, werden alle Änderungen des Primärschlüsselwerts automatisch an den Fremdschlüsselwert weitergegeben. |
Beispiele
Das folgende Beispiel gibt Informationen über alle FOREIGN KEY-Einschränkungen im Sales -Schema der Datenbank zurück.
USE AdventureWorks;
GO
SELECT CONSTRAINT_SCHEMA, CONSTRAINT_NAME, UNIQUE_CONSTRAINT_SCHEMA, UNIQUE_CONSTRAINT_NAME,
MATCH_OPTION, UPDATE_RULE, DELETE_RULE
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = 'Sales';