请问sqlserver中如何判断触发器是insert、update和delete?
时间:2011-11-10
来源:互联网
2.请教一下以下的这张表的update触发器怎么写?
表结构:create table ss_Item
(
Item_Id int primary key identity(1,1), --分类id
Item_Name varchar(50), --分类名称
Item_ParentId int, --父id和Item_Id 关联
Item_Leve1 int, --等级菜单
)
表数据:
item_id item_name item_ParentId Item_leve1
1 1级 -1 1
2 2级 1 2
3 3级 1 2
4 4级 2 3
5 2级 1 2
6 3级 3 3
7 5级 5 3
要求就是当对表中Item_ParentId执行update时能够对它父级菜单的Item_Leve1加1,注:后面三个字段可能有重复的数据。
请大侠帮帮忙,谢谢!
作者: zengzhifu2010 发布时间: 2011-11-10
2.同表的列值更改,最好是在语句上执行,你在update上加一句Item_Leve1=Item_Leve1+1是很简单的事情,为什么非要到触发器里弄呢,还得判断是否更改.
3.如果一定要用触发器,最好用instead of 触发器.
作者: qianjin036a 发布时间: 2011-11-10
for update
as
..
作者: ssp2009 发布时间: 2011-11-10
SQL code
IF EXISTS (SELECT 1 FROM INSERTED ) AND NOT EXISTS (SELECT 1 FROM DELETED) -- 插入 BEGIN ... END ELSE IF EXISTS (SELECT 1 FROM INSERTED ) AND EXISTS (SELECT 1 FROM DELETED) -- 更新 BEGIN ... END ELSE IF NOT EXISTS (SELECT 1 FROM INSERTED ) AND EXISTS (SELECT 1 FROM DELETED) -- 删除 BEGIN ... END
作者: NBDBA 发布时间: 2011-11-10
create trigger tr_name on tb for update as begin ....具体操作语句了 end
作者: lzd_83 发布时间: 2011-11-10
SQL code
create trigger tr_name on tb for update,INSERT,DELETE as ... GO
这需要判断是那类操作
作者: NBDBA 发布时间: 2011-11-10
太复杂,不建议用触发器
作者: NBDBA 发布时间: 2011-11-10
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28