Jika Anda perlu mengembalikan daftar semua CHECK kendala yang telah dinonaktifkan dalam database SQL Server, Anda dapat menjalankan kode T-SQL di bawah ini.
Contoh 1 – Return Only Disabled CHECK Batasan
Kueri ini hanya mengembalikan CHECK . yang dinonaktifkan kendala dalam database saat ini. Ini mengembalikan nama kendala, nama tabel yang diterapkan, dan definisi kendala.
SELECT OBJECT_NAME(parent_object_id) AS 'Table', name AS 'Constraint', definition FROM sys.check_constraints WHERE is_disabled = 1;
Hasil:
+----------------+-----------------+-------------------------------+ | Table | Constraint | definition | |----------------+-----------------+-------------------------------| | ConstraintTest | chkValidEndDate | ([EndDate]>=[StartDate]) | | Occupation | chkJobTitle | ([JobTitle]<>'Digital Nomad') | +----------------+-----------------+-------------------------------+
Ini menanyakan sys.check_constraints tampilan sistem. Kami tahu ini hanya mengembalikan batasan yang dinonaktifkan karena WHERE klausa hanya menentukan baris yang memiliki is_disabled kolom disetel ke 1 .
Jika Anda ingin mengembalikan semua diaktifkan CHECK kendala, cukup ubah 1 ke 0 .
Contoh 2 – Mengembalikan Semua Batasan CHECK
Kueri berikut mengembalikan semua CHECK batasan untuk database saat ini (bukan hanya yang dinonaktifkan). Kali ini saya mengembalikan is_disabled kolom untuk menunjukkan dari mana kueri sebelumnya mendapatkan nilainya:
SELECT OBJECT_NAME(parent_object_id) AS 'Table', name AS 'Constraint', is_disabled, is_not_trusted FROM sys.check_constraints;
Hasil:
+----------------+-----------------+---------------+------------------+ | Table | Constraint | is_disabled | is_not_trusted | |----------------+-----------------+---------------+------------------| | ConstraintTest | chkPrice | 0 | 0 | | ConstraintTest | chkValidEndDate | 1 | 1 | | ConstraintTest | chkTeamSize | 0 | 0 | | Occupation | chkJobTitle | 1 | 1 | +----------------+-----------------+---------------+------------------+
Saya juga menyertakan is_not_trusted kolom dalam kueri ini. Sebaiknya perhatikan nilai ini, karena batasan dapat tetap tidak dipercaya bahkan setelah diaktifkan kembali. Untuk diskusi mendetail (dan contoh) dari flag ini, lihat Apa yang Harus Anda Ketahui tentang WITH NOCHECK saat Mengaktifkan Batasan CHECK di SQL Server.