社区
MS-SQL Server
帖子详情
请问使用触发器的时候,能否使特定字段的更新不触发触发器
cowboy_ls
2004-05-05 01:29:06
student 表中有4个字段ID,NAMEM,CLASS,STATUS。
能否判断我在更新STATUS的时候不触发触发器,
如果我更新的是其他的字段(ID,NAME,CLASS)的时候就触发触发器呢!
望高手解答
...全文
109
17
打赏
收藏
请问使用触发器的时候,能否使特定字段的更新不触发触发器
student 表中有4个字段ID,NAMEM,CLASS,STATUS。 能否判断我在更新STATUS的时候不触发触发器, 如果我更新的是其他的字段(ID,NAME,CLASS)的时候就触发触发器呢! 望高手解答
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cowboy_ls
2004-05-05
打赏
举报
回复
回复人: internetcsdn(公元1979年8月10日) ( ) 信誉:100
楼上:
你的语句如果在同时更新status,CLASS会不会触发啊?
这个好象可以分2步做
internetcsdn
2004-05-05
打赏
举报
回复
大家都有理
8992026
2004-05-05
打赏
举报
回复
列级触发器?
zjcxc
元老
2004-05-05
打赏
举报
回复
楼主的要求是: 在更新STATUS的时候不触发触发器
不管你更新了几个字段,只要更新的字段中包含status,都满足上述条件.
cowboy_ls
2004-05-05
打赏
举报
回复
谢谢邹大哥和CSDN上的朋友们
我马上散分
carl2004
2004-05-05
打赏
举报
回复
可以建立一个列级触发器,基本语法可以查阅SQL联机帮助。
8992026
2004-05-05
打赏
举报
回复
如果:
update student
set CLASS=1,
STATUS=0
where id=1
update(status)=TRUE
update(CLASS)=TRUE
我理解是要处理的,否则,对CLASS的修改变成有时处理有时不处理了。
楼主没有说清楚,看搂主自己选择了
internetcsdn
2004-05-05
打赏
举报
回复
楼上:
你的语句如果在同时更新status,CLASS会不会触发啊?
zjcxc
元老
2004-05-05
打赏
举报
回复
我的也没错啊,楼主说是更新stauts的时候不触发,当然应该是:
if update(status) --如果更新的是status,则直接返回
return
life583
2004-05-05
打赏
举报
回复
可以啊!下面的例子是仅在ID字段update时触发,自己改一下,就可以满足你的要求了。
create trigger tu_student on
tu_student for UPDATE as
begin
if update(ID)
begin
......
end
return
end
go
internetcsdn
2004-05-05
打赏
举报
回复
真快,
又学到了
zjcxc
元老
2004-05-05
打赏
举报
回复
create trigger tr_update on student
for update
as
if update(status) --如果更新的是status,则直接返回
return
--这后面是你正常的处理语句
8992026
2004-05-05
打赏
举报
回复
斑竹的判断错了,可能几个一起更新,应该触发
8992026
2004-05-05
打赏
举报
回复
create trigger tr_student_update
on student
for update
as
if not update(ID) and not update(NAME) and not update(CLASS)
return
....
go
zjcxc
元老
2004-05-05
打赏
举报
回复
create trigger tr_update on student
for update
as
if update(status) --如果更新的是status,则直接返回
return
internetcsdn
2004-05-05
打赏
举报
回复
问得好,
学习
cowboy_ls
2004-05-05
打赏
举报
回复
这个触发器是一个UPDATE触发器
SQL Server
触发
器
表的
特定
字段
更新
时,
触发
Update
触发
器
代码如下: create trigger TR_MasterTable_Update on MasterTable after update as if update ([Type])–当Type
字段
被
更新
时,才会
触发
此
触发
器
insert into MasterLogTable select Id ,(Case [Type] when 1 then ‘Type1’ when 2 then ‘Type2’ when 3 then ‘Type3’ when 4 then ‘Type4’ else ‘TypeDefault’ end) ,Name from inserted go 另外再补充一句
sql 在
更新
某
字段
后写入日志
触发
器
sql 在
更新
某
字段
后写入日志
触发
器
sql某
字段
更新
后,
触发
该sql语句的sql
触发
器
类似于记入日志
Oracle
触发
器
修改自身表
1、行级
触发
器
不支持 update 、select 、delete 对自身表的操作。 2、表级
触发
器
不支持 :new 和 :old对象 所以想要
触发
器
对自身表数据做修该,则用行级
触发
器
得到 :new 和 :old对象中的相关数据,然后将这样的数据保存到 package中,然后在语句级
触发
期中调用 package包中保存的数据,进行
更新
操作
修改当前行
字段
的
触发
器
当某表某行数据修改时,自动修改当前行某
字段
的
触发
器
SQL
触发
器
的
使用
方法,
SQL
触发
器
的
使用
方法,SQL
触发
器
的
使用
方法,SQL
触发
器
的
使用
方法,SQL
触发
器
的
使用
方法
MS-SQL Server
34,837
社区成员
254,632
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章