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

Apa Nama Batasan Default di SQL Server?

Masalah:

Anda ingin mengetahui nama default batasan dalam database SQL Server.

Contoh:

Dalam database kami, kami membuat dua tabel, country dan student , dengan batasan berikut:PRIMARY KEY (kolom id di tabel country dan student ), FOREIGN KEY (kolom country_id dalam tabel student ), DEFAULT (kolom name dalam tabel student ), UNIQUE (kolom name dalam tabel country dan kolom personal_number dalam tabel student ), dan CHECK (kolom age dalam tabel student ).

Solusi:

CREATE TABLE country (
id int NOT NULL primary key,
name varchar(100) UNIQUE
);

CREATE TABLE student (
id int NOT NULL primary key,
name varchar(100) NOT NULL DEFAULT 'unknown',
personal_number varchar(100) UNIQUE,
age int CHECK(age>15),
country_id int FOREIGN KEY references country(id)
);

Mari kita tampilkan bagaimana SQL Server menamai batasan tabel ini secara default. Gunakan kueri ini untuk melihatnya:

SELECT TABLE_CATALOG, TABLE_NAME,
       CONSTRAINT_TYPE,CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS;

Ini hasilnya:

TABLE_NAME CONSTRAINT_TYPE CONSTRAINT_NAME
negara KUNCI UTAMA PK__country__3213E83F7EFD826D
negara UNIK UQ__country__72E12F1BB69A1D8C
mahasiswa KUNCI UTAMA PK__siswa__3213E83F357C7D1D
mahasiswa UNIK UQ__student__24E2EDD2AC2A7D87
mahasiswa PERIKSA CK__siswa__usia__4E88ABD4
mahasiswa KUNCI ASING FK__student__country__4F7CD00D

Diskusi:

Saat kami membuat tabel kami, kami menetapkan batasan untuk beberapa kolom. Namun, kami tidak menentukan nama untuk batasan ini, sehingga diberi nama secara default. Bagaimana nama default untuk batasan dihasilkan?

Di SQL Server, nama batasan default dimulai dengan awalan tertentu:PK , UQ , CK , atau FK .

Nama default untuk PRIMARY KEY batasan dimulai dengan ‘PK ’, diikuti dengan garis bawah (‘__ ’), nama tabel, lebih banyak garis bawah (‘__ '), dan nomor urut heksadesimal yang dihasilkan oleh SQL Server. Dalam contoh kita, PK__country__3213E83F7EFD826D adalah nama default untuk batasan kunci utama dalam tabel country dan PK__student__3213E83F357C7D1D adalah nama default untuk batasan kunci utama dalam tabel student .

Nama default untuk FOREIGN KEY batasan dimulai dengan ‘FK ’, diikuti dengan garis bawah (‘__ ’), nama tabel, lebih banyak garis bawah (‘__ '), nama tabel terkait, dan nomor urut heksadesimal yang dihasilkan oleh SQL Server. Dalam contoh kita, FK__student__country__4F7CD00D adalah nama default untuk batasan kunci asing dalam tabel student yang setara dengan kolom id dalam tabel country .

Nama default untuk UNIQUE batasannya adalah ‘UQ ', menggarisbawahi ('__ ’), nama tabel, lebih banyak garis bawah (‘__ '), dan nomor urut heksadesimal yang dihasilkan oleh SQL Server. Dalam contoh kita, UQ__country__72E12F1BB69A1D8C adalah nama default dari batasan unik untuk nama kolom di tabel country , dan UQ__student__24E2EDD2AC2A7D87 dari UNIQUE batasan untuk nama kolom tabel student . UNIQUE kendala dengan beberapa kolom diberi nama dalam pola yang sama.

Nama default untuk CHECK batasannya adalah ‘CK ', menggarisbawahi ('__ ’), nama tabel, lebih banyak garis bawah (‘__ '), nama kolom, lebih banyak garis bawah ('__'), dan nomor urut heksadesimal yang dihasilkan oleh SQL Server. Dalam contoh kita, CK__student__age__4E88ABD4 adalah nama default untuk CHECK batasan untuk kolom age tabel student .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tugas SSIS untuk impor jumlah kolom yang tidak konsisten?

  2. Pandangan Logis Tanpa Emosi pada Konvensi Penamaan SQL Server

  3. Hanya menyisipkan baris jika belum ada

  4. Cara Menggunakan Perancang Kueri di SQL Server

  5. SQL Server Pemicu untuk bekerja pada beberapa sisipan baris