我想在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