请教:在写一个触发器时遇到的问题,请问如何解决

boxmoon 2003-08-19 10:07:43
表A有有很多字段,包括Id1,Id2,f1,f2,f3,f4;
表B有字段Id1,Id2,f1,f2,f3,f4;
要求:当表A的f1,f2,f3,f4任一列有插入和更新变化时,便将相应的值插入到表B中.
触发器如下:
CREATE TRIGGER trig_a_update ON A
FOR INSERT,UPDATE
AS
if update(f1) or update(f2) or update(f3) or update(f4)
insert B select id1,id2,f1,f2,f3,f4 from inserted

============================================================
这时我给表B添加了一个字段:datedf ,类型是datetime,默认值getdate(),意思是当表B没增加一天记录,就把记录时间记录下来.
这是触发器出错误,提示如下:
"错误213:插入错误:列名或所提供值的数目与表定义不匹配"

请问:这个问题如何解决?
...全文
88 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chao778899 2003-08-19
  • 打赏
  • 举报
回复
insert B (id1, id2, f1, f2, f3, f4) select id1,id2,f1,f2,f3,f4 from inserted
zarge 2003-08-19
  • 打赏
  • 举报
回复
if update(f1) or update(f2) or update(f3) or update(f4)
insert B select id1,id2,f1,f2,f3,f4 from inserted
~~~~~~~~~
要指定列名

insert B (id1, id2, f1, f2, f3, f4) select id1,id2,f1,f2,f3,f4 from inserted

34,591

社区成员

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

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