0
我有這個觸發器在功能上工作(據我的測試我可以告訴),但我強烈懷疑我可以通過使用IF UPDATE來簡化代碼...我只是不完全明白它是如何工作的。就插入和刪除表而言,我似乎做了最好的未知觸發器。這些連接是否在AFTER INSERT,UPDATE觸發器等同的內部。使用IF UPDATE(column ...)?
該觸發器是否可以按照我剛纔提到的方式進行簡化(或以其他方式提高可讀性)?
CREATE TRIGGER [dbo].[tr_Affiliate_IU]
ON [dbo].[Affiliate]
AFTER INSERT, UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Get the current date.
DECLARE @getDate DATETIME = GETDATE()
-- Set the initial values of date_created and date_modified.
UPDATE
dbo.Affiliate
SET
date_created = @getDate
FROM
dbo.Affiliate A
INNER JOIN INSERTED I ON A.id = I.id
LEFT OUTER JOIN DELETED D ON I.id = D.id
WHERE
D.id IS NULL
-- Ensure the value of date_created does never changes.
-- Update the value of date_modified to the current date.
UPDATE
dbo.Affiliate
SET
date_created = D.date_created
,date_modified = @getDate
FROM
dbo.Affiliate A
INNER JOIN INSERTED I ON A.id = I.id
INNER JOIN DELETED D ON I.id = D.id
END
這就是我希望的那種幫助,謝謝! – 2012-04-11 00:30:24