Hier ist etwas T-SQL-Code, den Sie verwenden können, um eine Liste aller CHECK- und Fremdschlüsseleinschränkungen in einer SQL Server-Datenbank zu erhalten.
Im folgenden Beispiel mache ich eine UNION
auf zwei Datenbankabfragen. Man fragt sys.foreign_keys
ab für deaktivierte Fremdschlüssel und die anderen Abfragen sys.check_constraints
für deaktivierte CHECK-Einschränkungen.
SELECT SCHEMA_NAME(schema_id) AS [Schema], OBJECT_NAME(parent_object_id) AS 'Table', name AS 'Constraint', type_desc, is_disabled, is_not_trusted FROM sys.foreign_keys WHERE is_disabled = 1 UNION SELECT SCHEMA_NAME(schema_id), OBJECT_NAME(parent_object_id), name, type_desc, is_disabled, is_not_trusted FROM sys.check_constraints WHERE is_disabled = 1;
Ergebnis:
+----------+------------------+--------------------+------------------------+---------------+------------------+ | Schema | Table | Constraint | type_desc | is_disabled | is_not_trusted | |----------+------------------+--------------------+------------------------+---------------+------------------| | dbo | BandMember | FK_BandMember_Band | FOREIGN_KEY_CONSTRAINT | 1 | 1 | | dbo | City | FK_City_Country | FOREIGN_KEY_CONSTRAINT | 1 | 1 | | dbo | MembershipPeriod | chkValidEndDate | CHECK_CONSTRAINT | 1 | 1 | +----------+------------------+--------------------+------------------------+---------------+------------------+
Dies sind die Ergebnisse, die ich in einer meiner Testdatenbanken in meiner Entwicklungsumgebung erhalte. Dadurch werden alle deaktivierten Fremdschlüssel und CHECK-Einschränkungen in der aktuellen Datenbank zurückgegeben. Um eine andere Datenbank zu überprüfen, wechseln Sie einfach zu dieser Datenbank und führen Sie sie dort aus.
Beachten Sie, dass beim Deaktivieren einer Einschränkung der is_not_trusted
Flag wird auf 1
gesetzt , und die Einschränkung gilt als nicht vertrauenswürdig. Wenn Sie die Einschränkung erneut aktivieren, haben Sie die Möglichkeit, sie auf vertrauenswürdig zurückzusetzen oder sie als nicht vertrauenswürdig zu belassen. Weitere Informationen zum Wiederherstellen des Vertrauens in eine Einschränkung finden Sie unter So stellen Sie das Vertrauen in eine Fremdschlüssel-Einschränkung in SQL Server wieder her und was Sie über WITH NOCHECK wissen sollten, wenn Sie eine CHECK-Einschränkung in SQL Server aktivieren.