我想在MS SQL中爲INSERT,UPDATE和DELETE創建單個觸發器,但我希望能夠簡單地提取數據3 IF語句什麼是最好的方法來確定是否發生UPDATE,DELETE或INSERT觸發器
我想要做這樣的事情:
DECLARE @PK int
SELECT @PK = COALESCE(i.PK, d.PK)
FROM inserted i, deleted d
這沒有工作,但想知道如果我能在一個查詢做到這一點。
有什麼替代方案?
我想在MS SQL中爲INSERT,UPDATE和DELETE創建單個觸發器,但我希望能夠簡單地提取數據3 IF語句什麼是最好的方法來確定是否發生UPDATE,DELETE或INSERT觸發器
我想要做這樣的事情:
DECLARE @PK int
SELECT @PK = COALESCE(i.PK, d.PK)
FROM inserted i, deleted d
這沒有工作,但想知道如果我能在一個查詢做到這一點。
有什麼替代方案?
我最終使用完全外部聯接
DECLARE @DataIWanted as varchar(255)
SELECT @DataIWanted = COALESCE(i.TheData,d.TheData)
FROM inserted i
FULL OUTER JOIN deleted d on d.PK=i.PK
上述查詢將是從刪除的表或插入/更新後的表。假設TheData在數據庫中定義爲NON NULL。
而不是逗號加入,你試過SELECT @PK = COALESCE(i.PK,d.PK) FROM插入i完全外部連接刪除d上i.PK = d.PK? – 2013-03-08 18:50:42
全外連接工程..謝謝。那就是我下一次要嘗試的:0) – Arcadian 2013-03-08 18:52:31
提取數據到什麼地方? – 2013-03-08 18:55:43