Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Menemukan Nama Batasan di SQL Server

Masalah:

Anda ingin menemukan nama batasan dalam tabel di SQL Server.

Contoh:

Kami ingin menampilkan nama-nama kendala dalam tabel student .

Solusi:

SELECT TABLE_NAME,
       CONSTRAINT_TYPE,CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME=’student’;

Ini hasilnya:

TABLE_NAME CONSTRAINT_TYPE CONSTRAINT_NAME
siswa KUNCI UTAMA PK__siswa__3213E83F357C7D1D
mahasiswa UNIK UQ__student__24E2EDD2AC2A7D87
mahasiswa PERIKSA CK__siswa__usia__4E88ABD4
mahasiswa KUNCI ASING FK__student__country__4F7CD00D

Diskusi:

Gunakan tampilan table_constraints di information_schema skema. Kolom table_name memberi Anda nama tabel tempat batasan didefinisikan, dan kolom constraint_name berisi nama kendala. Kolom constraint_type menunjukkan jenis kendala:PRIMARY KEY untuk tipe kunci utama, FOREIGN KEY untuk jenis kunci asing, UNIQUE untuk nilai unik, dan CHECK untuk pemeriksaan kendala.

Misalnya, kunci utama di student tabel memiliki nama kendala PK_student_3213E83F357C7D1D . constraint_type kolom memberi Anda informasi tentang jenis setiap kendala; untuk primary key adalah PRIMARY KEY . table_name kolom dalam tampilan ini menunjukkan tabel mana yang berisi batasan ini.

Namun, jika Anda ingin memilih DEFAULT kendala dari database, gunakan kueri ini di bawah ini.

SELECT c.name, c.definition
FROM sys.default_constraints c
JOIN sys.objects o ON o.object_id = c.parent_object_id
WHERE o.name ='student';

Ini hasilnya:

nama definisi
DF__student__name__4D94879B ("tidak diketahui")

Nama DEFAULT constraint disimpan dalam nama kolom, tetapi nilainya ada di kolom definition . Bergabung dengan tampilan sys.default_constraint s dan sys.objects memungkinkan kita untuk memilih hanya data untuk tabel tertentu (dalam contoh kita, tabel student ) dengan menggunakan klausa WHERE. Nama kendala berisi nama tabel (student ) dan nama kolom (name ).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa tipe data SYSNAME di SQL Server?

  2. Apa batasan basis data?

  3. Menggunakan kondisi if dalam menyisipkan SQL Server

  4. Belajar Menyimpan dan Menganalisis Dokumen di Sistem File Windows dengan Pencarian Semantik SQL Server – Bagian 1

  5. Mengenal Beban Kerja SQL Server Anda