请问如何在update触发器中执行 insert?

oydj 2007-06-03 11:45:17
alter TRIGGER test_update ON test FOR update

AS

insert into ttt(userid,username) values (2,'name')

go

我想在update触发器执行的时候对另外一个表进行插入数据,但是我用以上的语句,在update的时候提示说"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行(2行)"

...全文
276 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gd4134 2007-06-04
  • 打赏
  • 举报
回复
楼上正解
gthlu 2007-06-04
  • 打赏
  • 举报
回复
alter TRIGGER test_update ON test FOR update

AS

insert into ttt(userid,username)
select 2,'name'
from inserted
go

修改几行,就插入几行,可以通过条件得到你想要的结果。
oydj 2007-06-04
  • 打赏
  • 举报
回复
恩,我看了下,ttt表的确是有个由默认值创建的约束.

但是我即使删除这个约束,问题还是依旧啊..
y_dong119 2007-06-04
  • 打赏
  • 举报
回复
恩,肯定是可以的...
srgcc 2007-06-04
  • 打赏
  • 举报
回复
肯定是你的ttt表上有完整性约束条件不能满足.
xiaoxiangqing 2007-06-04
  • 打赏
  • 举报
回复
可以,你可能其它地方有問題
oydj 2007-06-04
  • 打赏
  • 举报
回复
终于找到真正的问题了.
alter TRIGGER test_update ON test FOR update
改成
alter TRIGGER test_update ON test after update

就行了.
问题出在这个FOR这个语句上.一个是执行在update时,一个是执行于update后
谢谢各位了!

34,594

社区成员

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

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