我正在尝试优化来自第 3 方的数据库中表的触发器。我不允许更改或向模式添加任何列。
该表有一个复合主键,一列是整数,另一列是nvarchar。
如何在不使用临时表的情况下检索已删除的行?
我目前正在 where 子句中的字符串中连接键,如下所示:
SELECT FROM deleted WHERE (deleted.a + CAST(deleted.b as nvarchar)
NOT IN (SELECT deleted.a + CAST(deleted.b as nvarchar)
FROM inserted, deleted
WHERE inserted.a = deleted.a
and inserted.b = deleted.b))
我也尝试了几种不同deleted.%%physloc%%
的尝试,但没有成功。有没有更优雅的方法来过滤掉已删除的记录?
如果我没看错,这应该有效:
关于 srutzky 的评论
对于可更新的主键,情况并非如此。
结果