Saya memiliki pemicu tabel pada UPDATE dan INSERT yang menambahkan baris ke tabel lain. Hanya perlu menambahkan baris jika salah satu dari empat kolom diubah. Saya mencoba menggunakan JIKA UPDATE (col) untuk menguji perubahan tetapi memiliki blind spot. Ini hanya menguji bahwa beberapa nilai masuk. Saya perlu masuk lebih dalam, saya perlu membandingkan nilai lama dan baru untuk melihat perubahan yang sebenarnya telah terjadi. Itu harus bekerja dengan INSERT dan UPDATE.
Dalam hal PEMBARUAN yang mudah karena tabel yang dimasukkan dan dihapus memiliki nilai yang dapat saya bandingkan di dalam pelatuk. Namun, untuk INSERT hanya tabel sisipan yang memiliki nilai. Karena saya membutuhkan ini semua di pemicu yang sama, bagaimana saya menangani kasus INSERT itu?
Berikut ini skrip pemicu yang ingin saya ubah:
ALTER TRIGGER [dbo].[trATPerson_alter]
ON [mydb].[dbo].[AT_Person]
AFTER INSERT,UPDATE
AS
BEGIN
SET NOCOUNT ON;
-- Not all updates require a push
IF (UPDATE([First_Name]) OR UPDATE([Last_Name]) OR UPDATE([JobCode]) OR UPDATE([Inactive]))
BEGIN
INSERT INTO [mydb].[dbo].[AT_Person_To_Push] (
[Facility],
[VendorID],
[Person_code],
[First_Name],
[Last_Name],
[JobCode],
[Alink],
[Inactive]
)
SELECT [Facility],
[VendorID],
[Person_code],
[First_Name],
[Last_Name],
[JobCode],
[Alink],
[Inactive]
FROM inserted
END
END