这个触发器怎么写

kenshu 2011-11-16 05:55:20
//我不会SQLSERVER,所以,可能的话,稍微详细点

1.UPDATE table_a 时,table_a.column_b 自动更新为 getdate()
2.如果 table_a.column_c 有变化,table_a.column_d 自动更新为 getdate()

谢谢!
...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jyh070207 2011-11-16
  • 打赏
  • 举报
回复


--第1问,但最好象第2问,指定一下更新了那些栏位需要更新column_d
create trigger tudpate_table_a
on dbo.table_a
for update
as
begin
if not update(column_d)
begin
update table_a
set column_d = getdate()
from inserted i
and i.主键 =table_a.主键
end
end

kenshu 2011-11-16
  • 打赏
  • 举报
回复
可以,结贴.

谢谢!
jyh070207 2011-11-16
  • 打赏
  • 举报
回复


--第2问,
create trigger tudpate_table_a
on dbo.table_a
for update
as
begin
if update(column_c)
begin
update table_a
set column_d = getdate()
from inserted i,deleted d
where i.主键 = d.主键
and i.column_c <> d.column_c
and i.主键 =table_a.主键
end
end
-晴天 2011-11-16
  • 打赏
  • 举报
回复
1.
UPDATE table_a set column_b=getdate()
2.
要建一个触发器:
要区分是否更新,要有一个标志列,假设为ID:
create trigger upcold
on table_a
after update
as
begin
if update(column_c)
update table_a set column_d=getdate() where id in(select id from inserted)
end
go

34,576

社区成员

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

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