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

Batasan yang hanya memungkinkan satu dari dua tabel untuk mereferensikan tabel dasar

PERIKSA kendala dengan UDF (yang merupakan jawaban Oded) tidak berskala dengan baik dan memiliki konkurensi yang buruk. Lihat ini:

  • UDF skalar yang dibungkus dengan batasan CHECK sangat lambat dan mungkin gagal untuk pembaruan multibaris
  • Tony Rogerson

Jadi:

  • buat tabel baru, misalnya TableA2XY
  • ini memiliki PK TableA dan kolom char(1) dengan CHECK untuk mengizinkan hanya X atau Y. Dan batasan unik pada PK A juga.
  • tableX dan tableY memiliki kolom char(1) baru dengan tanda centang untuk masing-masing hanya mengizinkan X atau Y
  • tableX dan tableY memiliki FK ke TableA2XY di kedua kolom

Ini adalah pendekatan superkey atau subtipe

  • semua berbasis DRI
  • tidak ada pemicu
  • tidak ada udfs dengan akses tabel dalam batasan PERIKSA.


  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 itu LEN() di SQL Server?

  2. Buat Tabel di SQL Server 2017

  3. Kerangka Entitas 6 - Kueri pengaturan waktu

  4. Pernyataan UPDATE bertentangan dengan batasan REFERENCE - Tutorial SQL Server / TSQL Bagian 76

  5. SQL LocalDB vs SQL Server CE