首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >而不是更新、删除、插入:确定每个命令

而不是更新、删除、插入:确定每个命令
EN

Stack Overflow用户
提问于 2012-09-05 06:33:15
回答 1查看 808关注 0票数 0

我需要在trigger UPDATE,DELETE,INSERT.For最后两个命令中确定这3个命令中的每一个我接下来要做的是:

代码语言:javascript
运行
复制
    IF EXISTS (SELECT * FROM inserted)
      BEGIN 

      END
    ELSE IF EXISTS (SELECT * FROM deleted)
      BEGIN 

      END 

如何获得更新行的权限?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-05 06:36:44

不能确切地确定您试图完成的是什么,但是如果inserted (更新后的值)和deleted (更新前的值)都存在,那么您可以测试它是否是UPDATE。从documentation

deleted表存储DELETE和UPDATE语句期间受影响行的副本。在执行DELETE或UPDATE语句期间,将从触发器表中删除行,并将其传输到已删除的表中。删除的表和触发器表通常没有共同的行。

插入的表存储INSERT和UPDATE语句期间受影响行的副本。在insert或update事务期间,新行将同时添加到插入的表和触发器表中。插入的表中的行是触发器表中新行的副本。

因此,如果inserted存在但不存在deleted,则它是INSERT;如果deleted存在但不存在inserted,则它是DELETE;如果两者都存在,则它是UPDATE

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12272261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档