用触发器保存一个表update、insert、delete的那一条记录到另一个表,怎么做?

256m 2002-03-14 09:33:00
Create trigger ut_delete
on delete
for A
as
insert b
(b1,b2,b3)
select a1,a2,a3 from selected
这个可以触发delete;
Create trigger ut_update
on update
for A
as
insert b
(b1,b2,b3)
select a1,a2,a3 from inserted
这个触发器保存的是更新以后的值,并且改了主键它没有反应!
最后是能给一个三个触发器分开写的例子,再合起来写的例子!

...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
IronPromises 2002-08-12
  • 打赏
  • 举报
回复
结贴
xhfjy 2002-03-15
  • 打赏
  • 举报
回复
????
larson 2002-03-15
  • 打赏
  • 举报
回复
Haiwer(海阔天空--回复语句只对MSSQL有效)

update 时是否应该先 deleted ,然后再inserted?
binriyue 2002-03-15
  • 打赏
  • 举报
回复
你的触发器水平也太差了吧?
昵称被占用了 2002-03-15
  • 打赏
  • 举报
回复
你自己贴的触发器错误多多,不知道怎么回事!

要拆开写你自己拆!!
昵称被占用了 2002-03-15
  • 打赏
  • 举报
回复
在你的B表加一个标志字段Op,1表示插入或改后,2表示改前或删除,再加一个时间字段OPTIME:

Create trigger ut_ALL
on A
for insert,update,delete
as
DECLARE @TIME DATETIME
SELECT @TIME=GETDATE()
insert b
(b1,b2,b3,op,OPTIME)
select a1,a2,a3,1,@TIME from INSERTED

insert b
(b1,b2,b3,op,OPTIME)
select a1,a2,a3,1,@TIME from DELETED

GO



昵称被占用了 2002-03-15
  • 打赏
  • 举报
回复
to: larson(沙发)
在这里已经用OP表示数据特性,而同一个操作的OPTIME是一样的,所以可以不必分次序!

34,594

社区成员

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

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