Rumah > pangkalan data > tutorial mysql > Cara Membuat Kekangan Semak Pelayan SQL Menggunakan Fungsi Tersuai untuk Mengesahkan Data Merentasi Jadual?

Cara Membuat Kekangan Semak Pelayan SQL Menggunakan Fungsi Tersuai untuk Mengesahkan Data Merentasi Jadual?

Linda Hamilton
Lepaskan: 2024-12-26 07:39:08
asal
805 orang telah melayarinya

How to Create a SQL Server Check Constraint Using a Custom Function to Validate Data Across Tables?

Mencipta Fungsi Tersuai dengan Kekangan Semak dalam SQL Server 2008

Apabila bekerja dengan pangkalan data SQL Server, mengekalkan integriti data adalah penting. Semak kekangan menyediakan mekanisme yang berharga untuk memastikan data yang dimasukkan ke dalam jadual mematuhi peraturan yang ditetapkan. Dalam konteks ini, timbul keperluan untuk mencipta fungsi tersuai yang mengesahkan hubungan antara dua jadual menggunakan kekangan semak.

Secara khusus, dalam kes ini, matlamatnya adalah untuk mewujudkan kekangan semakan pada lajur event_expected_attendance dalam jadual acara, memastikan ia tidak melebihi integer venue_max_capacity dalam jadual venue. Untuk mencapai ini, fungsi tersuai mesti ditakrifkan dan dirujuk dalam kekangan semakan.

Mencipta Fungsi Tersuai

Fungsi tersuai, dinamakan CheckVenueCapacity, menyemak sama ada yang disediakan nilai kapasiti adalah kurang daripada atau sama dengan venue_max_capacity untuk venue_id yang diberikan. Berikut ialah kod untuk fungsi:

CREATE FUNCTION dbo.CheckVenueCapacity (@venue_id int, @capacity int)
RETURNS int
AS 
BEGIN
  DECLARE @retval int
    SELECT @retval = CASE WHEN venue_max_capacity >= @capacity THEN 0 ELSE 1 END
    FROM venues
    WHERE venue_id = @venue_id 
  RETURN @retval
END;
Salin selepas log masuk

Fungsi ini mengembalikan 0 jika kapasiti sah dan 1 jika ia melebihi kapasiti maksimum tempat.

Menambah Kekangan Semak

Setelah fungsi tersuai ditakrifkan, kami boleh menambah kekangan semak pada acara jadual:

ALTER TABLE events 
  ADD CONSTRAINT chkVenueCapacity 
  CHECK (dbo.CheckVenueCapacity(event_venue_id, event_expected_attendance) = 0); 
Salin selepas log masuk

Kekangan ini memastikan bahawa sebarang sisipan data ke dalam lajur event_expected_attendance disahkan oleh fungsi CheckVenueCapacity, menghalang nilai yang akan melanggar kapasiti maksimum tempat.

Atas ialah kandungan terperinci Cara Membuat Kekangan Semak Pelayan SQL Menggunakan Fungsi Tersuai untuk Mengesahkan Data Merentasi Jadual?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan