请问使用触发器的时候,能否使特定字段的更新不触发触发器

cowboy_ls 2004-05-05 01:29:06
student 表中有4个字段ID,NAMEM,CLASS,STATUS。
能否判断我在更新STATUS的时候不触发触发器,
如果我更新的是其他的字段(ID,NAME,CLASS)的时候就触发触发器呢!
望高手解答
...全文
109 17 打赏 收藏 转发到动态 举报
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触发器

34,837

社区成员

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

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