触发器中如何判断触发操作是insert update delete

cangying747 2007-03-22 05:15:47
在create trigger trigger_name for insert,update,delete中
可以利用
if(select count(*) from inserted >0 and select count(*) from deleted >0)
来判断update
if(select count(*) from inserted >0 and select count(*) from deleted =0)
来判断insert
else为删除。

除了这种方法有没有更简单些的方法呢?
...全文
715 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cangying747 2007-03-22
  • 打赏
  • 举报
回复
呵呵,我也想。可是那样的话老板会杀了我地。
kadboy 2007-03-22
  • 打赏
  • 举报
回复
不要给他编了,没代码最整洁
cangying747 2007-03-22
  • 打赏
  • 举报
回复
不错,比我写的那个好多了。
mengmou 2007-03-22
  • 打赏
  • 举报
回复
if exists(select 1 from inserted) and exists(select 1 from deleted)
if exists(select 1 from inserted) and not exists(select 1 from deleted)
if not exists(select 1 from inserted) and exists(select 1 from deleted)
-----------
我猜你的客户可能会比较喜欢这个,整洁。

cangying747 2007-03-22
  • 打赏
  • 举报
回复
mengmou()mengmou() 我也没办法。55
在oracle里面有
CASE
WHEN INSERTING THEN
WHEN UPDATING THEN
WHEN DELETING THEN
的语句 sqlServer里面有类似的么?没有我就只能用笨方法了。
cangying747 2007-03-22
  • 打赏
  • 举报
回复
要建立触发器的呀。对数据库的更改要上报的。
mengmou 2007-03-22
  • 打赏
  • 举报
回复
客户嫌触发器太多不购整洁
-------------------------
我真%(*&
zsl5305256 2007-03-22
  • 打赏
  • 举报
回复
晕,还有这种回事,你们不说他怎么会知道!
cangying747 2007-03-22
  • 打赏
  • 举报
回复
数据库是人家的。对我的软件要求是能在数据库里少加东西就少加东西。没办法呀
sdsxlj 2007-03-22
  • 打赏
  • 举报
回复
晕,客户关注那么多内部的实现干嘛.
cangying747 2007-03-22
  • 打赏
  • 举报
回复
客户嫌触发器太多不购整洁,555
mengmou 2007-03-22
  • 打赏
  • 举报
回复
为什么要合并成一个?
CathySun118 2007-03-22
  • 打赏
  • 举报
回复
lz那样做有什么意义?
cangying747 2007-03-22
  • 打赏
  • 举报
回复
1楼的,我就是要把三个分别写针对insert delete update的触发器合并成一个才问这个问题的。555
sdsxlj 2007-03-22
  • 打赏
  • 举报
回复
够快
mengmou 2007-03-22
  • 打赏
  • 举报
回复
向你那样写维护起来不方便
mengmou 2007-03-22
  • 打赏
  • 举报
回复
create trigger trigger_name_i for insert
create trigger trigger_name_u for update
create trigger trigger_name_d for delete

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧