2 sql t-sql triggers sql-server-2012
下面是我用来确定插入/更新/删除中的操作的代码。这个问题分为两部分。
一 - 这是确定操作类型的正确方法。二 - 这是确定操作类型的最佳方法。
开始
声明 @ActionType 字符 (1)
IF NOT EXISTS (SELECT * FROM已删除) AND EXISTS (SELECT * FROM已插入)
开始
SET @ActionType = '我'
结尾
IF EXISTS (SELECT * FROM 删除) AND EXISTS (SELECT * FROM 插入)
开始
SET @ActionType = 'U'
结尾
IF EXISTS (SELECT * FROM已删除) AND NOT EXISTS (SELECT * FROM已插入)
开始
SET @ActionType = 'D'
结尾
选择@ActionType;
结尾
一:是的。二:你可以比这更简洁。
这是我目前使用的代码。
SELECT @Action = CASE
WHEN EXISTS(SELECT 1 FROM INSERTED)
AND EXISTS(SELECT 1 FROM DELETED) THEN 'U'
WHEN EXISTS(SELECT 1 FROM INSERTED) THEN 'I'
ELSE 'D' END;
Run Code Online (Sandbox Code Playgroud)