Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Melaksanakan Kekangan Unik Bersyarat dalam SQL Server 2005?

Bagaimanakah Saya Boleh Melaksanakan Kekangan Unik Bersyarat dalam SQL Server 2005?

DDD
Lepaskan: 2025-01-10 08:01:42
asal
971 orang telah melayarinya

How Can I Implement Conditional Unique Constraints in SQL Server 2005?

SQL Server 2005: Melaksanakan Keunikan Bersyarat untuk Subset Lajur

Mewujudkan kekangan unik yang digunakan hanya dalam keadaan tertentu dalam SQL Server 2005 memberikan cabaran. Walaupun pencetus menawarkan penyelesaian, ia boleh memberi kesan kepada prestasi. Pendekatan yang lebih cekap menggunakan indeks yang ditapis.

Indeks Ditapis: Penyelesaian Dinamik untuk Kekangan Bersyarat

Indeks yang ditapis membenarkan pengindeksan subset data tertentu, menyediakan mekanisme yang berkuasa untuk melaksanakan kekangan bersyarat melalui predikat penapis.

Mencipta Kekangan Unik Bersyarat menggunakan Indeks Ditapis

Pernyataan T-SQL berikut menunjukkan cara mencipta indeks unik dengan penapis:

<code class="language-sql">CREATE UNIQUE INDEX MyIndex
ON MyTable (ID)
WHERE RecordStatus = 1;</code>
Salin selepas log masuk

Ini mewujudkan kekangan unik pada lajur ID, tetapi hanya apabila RecordStatus ialah 1. Sebarang percubaan untuk melanggar keunikan bersyarat ini akan menghasilkan ralat.

Contoh Mesej Ralat:

Percubaan untuk memasukkan nilai ID pendua apabila RecordStatus ialah 1 akan menghasilkan:

<code>Msg 2601, Level 14, State 1, Line 13
Cannot insert duplicate key row in object 'dbo.MyTable' with unique index 'MyIndex'. The duplicate key value is (9999).</code>
Salin selepas log masuk

Ringkasan

Indeks yang ditapis menawarkan kaedah yang cekap dan elegan untuk mewujudkan kekangan unik bersyarat dalam SQL Server 2005, mengelakkan overhed prestasi yang sering dikaitkan dengan penyelesaian berasaskan pencetus. Penggunaan predikat penapis membolehkan kawalan dinamik ke atas keunikan dalam subset data tertentu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Kekangan Unik Bersyarat dalam SQL Server 2005?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan