আমার আপডেট এবং INSERT এ একটি টেবিল ট্রিগার রয়েছে যা অন্য টেবিলে একটি সারি যুক্ত করে। এটির জন্য কেবল চারটি কলামের একটির পরিবর্তিত হলে একটি সারি যুক্ত করা দরকার। আমি পরিবর্তনের জন্য পরীক্ষার জন্য আইএফ আপডেট (করল) ব্যবহার করার চেষ্টা করেছি তবে এটির অন্ধ দাগ রয়েছে। এটি কেবলমাত্র পরীক্ষা করে যে কিছু মান এসেছিল I আমাকে আরও গভীরতর হওয়া দরকার, সত্যিকারের পরিবর্তন ঘটেছে তা দেখতে আমার পুরানো এবং নতুন মানগুলির তুলনা করতে হবে। এটি INSERT এবং আপডেট আপডেট উভয়ের সাথে কাজ করতে হবে।
একটি আপডেটের ক্ষেত্রে এটি সহজ কারণ সন্নিবেশ করা এবং মোছা উভয় টেবিলেরই মান রয়েছে যা আমি ট্রিগারটির মধ্যে তুলনা করতে পারি। তবে INSERT- এর জন্য কেবল সন্নিবেশ সারণীর মান রয়েছে। কারণ একই ট্রিগারে আমার এই সমস্ত দরকার, আমি কীভাবে এই INSERT কেস পরিচালনা করব?
ট্রিগারটির স্ক্রিপ্ট এখানে আমি সংশোধন করতে চাই:
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