Her er noget T-SQL-kode, du kan bruge til at få en liste over alle CHECK- og fremmednøglebegrænsninger i en SQL Server-database.
I det følgende eksempel laver jeg en UNION
på to databaseforespørgsler. One forespørger sys.foreign_keys
for deaktiverede fremmednøgler og de andre forespørgsler sys.check_constraints
for deaktiverede CHECK-begrænsninger.
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;
Resultat:
+----------+------------------+--------------------+------------------------+---------------+------------------+ | 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 | +----------+------------------+--------------------+------------------------+---------------+------------------+
Det er de resultater, jeg får på en af mine testdatabaser i mit udviklingsmiljø. Dette returnerer alle deaktiverede fremmednøgler og CHECK-begrænsninger i den aktuelle database. For at kontrollere en anden database skal du blot skifte til den database og køre den der.
Bemærk, at når du deaktiverer en begrænsning, is_not_trusted
flag er sat til 1
, og begrænsningen betragtes som upålidelig. Når du genaktiverer begrænsningen, har du mulighed for at nulstille den til betroet eller lade den være upålidelig. For mere information om gendannelse af tillid i en begrænsning, se Sådan gendannes tillid i en fremmednøglebegrænsning i SQL Server og hvad du bør vide om MED NOCHECK, når du aktiverer en CHECK-begrænsning i SQL Server.