


Bagaimanakah Saya Boleh Menggunakan Subqueries dalam Kekangan Semakan SQL Server?
Jan 04, 2025 pm 06:31 PMMenggunakan Subqueries dalam Check Constraint
Dalam SQL Server 2008 R2, cuba menentukan kekangan semak dengan subquery, seperti:
ALTER TABLE Table1 WITH CHECK ADD CONSTRAINT CK_Code CHECK (MyField in (Select Field From Table2))
mengakibatkan ralat yang menunjukkan bahawa subqueries tidak dibenarkan dalam hal ini konteks.
Penyelesaian Alternatif: Fungsi Skalar
Untuk mencapai pengesahan ini tanpa pencetus, fungsi skalar yang merangkum subkueri boleh dibuat dan digunakan dalam kekangan semakan. Berikut ialah contoh:
CREATE FUNCTION myFunction( @field DATATYPE(?) ) RETURNS VARCHAR(5) AS BEGIN IF EXISTS (SELECT * FROM Table2 WHERE MYFIELD = @field) RETURN 'True' RETURN 'False' END
Menggunakan Fungsi pada Kekangan Semak
Setelah fungsi ditakrifkan, ia boleh digunakan dalam kekangan semak seperti berikut:
ALTER TABLE Table1 WITH CHECK ADD CONSTRAINT CK_Code CHECK (myFunction(MYFIELD) = 'True')
Dengan menyemak nilai skalar yang dikembalikan oleh fungsi terhadap rentetan tertentu (cth., 'Benar'), pengesahan yang dikehendaki ialah dikuatkuasakan tanpa memerlukan subkueri terus dalam kekangan semakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Subqueries dalam Kekangan Semakan SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
