Menulis Pencetus INSERT dalam SQL Server 2008: Mencetuskan Sisipan Maklumat Pekerja
Dalam SQL Server 2008, anda boleh menggunakan pencetus untuk melakukan tindakan tertentu apabila data diubah suai dalam jadual. Satu senario sedemikian ialah memastikan kewujudan maklumat pekerja dalam jadual Pekerja apabila dimasukkan ke dalam jadual EmployeeResult.
Untuk mencipta pencetus yang memasukkan rekod pekerja apabila ia tiada dalam jadual Pekerja:
CREATE TRIGGER trig_Update_Employee ON [EmployeeResult] FOR INSERT AS BEGIN -- Retrieve the inserted row data SELECT * INTO #InsertedRows FROM INSERTED; -- Check if the inserted employee exists in the Employee table SELECT COUNT(*) INTO #EmployeeCount FROM Employee WHERE Name IN (SELECT Name FROM #InsertedRows) AND Department IN (SELECT Department FROM #InsertedRows); -- Insert missing employee records IF #EmployeeCount < 1 BEGIN -- Dynamically generate the INSERT statement based on the inserted rows DECLARE @InsertStatement NVARCHAR(MAX) = 'INSERT INTO Employee (Name, Department) VALUES '; SELECT @InsertStatement += '("" + Name + "", ""' + Department + '"")' FROM #InsertedRows; -- Execute the dynamic INSERT statement EXEC sp_executesql @InsertStatement; END; END;
Pencetus ini menggunakan jadual pseudo INSERTED untuk mengakses data yang dimasukkan. Ia mula-mula menyemak sama ada nama pekerja dan pasangan jabatan sudah wujud dalam jadual Pekerja menggunakan pertanyaan COUNT(*). Jika tidak, ia menjana pernyataan INSERT secara dinamik menggunakan klausa VALUES berdasarkan baris yang disisipkan. Akhir sekali, ia melaksanakan pernyataan INSERT untuk memasukkan maklumat pekerja yang hilang.
Dengan melaksanakan pencetus ini, anda boleh memastikan bahawa setiap sisipan EmployeeResult menghasilkan kewujudan data pekerja yang sepadan dalam jadual Pekerja, memastikan integriti dan kesempurnaan data .
Atas ialah kandungan terperinci Bagaimana untuk Menulis Pencetus INSERT dalam SQL Server 2008 untuk Memastikan Integriti Data Pekerja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!