Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggunakan Subqueries dalam Kekangan Semakan SQL Server?
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.
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
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!