问个触发器的小白问题

ALTER TRIGGER [dbo].[trigger_test]

   ON  [dbo].[test2]

   AFTER INSERT

AS 

BEGIN

insert into test1 select * from test2

END

我在test2表上做了个测试,test2表有新增的时候,自动插到TEST1表里。我想问下,这个插入的逻辑,第二次有新增插入的时候是只插入新增的那一行,还是包含之前的记录的全部插入一次。

FineReport ysbin 发布于 2023-2-16 11:29
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-16 11:30(编辑于 2023-2-16 11:35)

insert into test1 select * from test2 改成

insert into test1 select * from inserted

-----------

你这样写是全部把test2再次插入test1

  • ysbin ysbin(提问者) 是的,感谢!才知道inserted,deleted。 再顺便问一下,如果是UPDATE,这个应该怎么写。
    2023-02-16 14:31 
  • Z4u3z1 Z4u3z1 回复 ysbin(提问者) update其实是分两步: delete,再insert。这样说清楚吧
    2023-02-16 14:34 
  • ysbin ysbin(提问者) 回复 Z4u3z1 能简单写一条实例吗?比如像我上面的 test2表更新了,test1怎么更新,谢谢
    2023-02-16 14:45 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-2-16 11:30

只会插入新插入那一行

  • 1关注人数
  • 199浏览人数
  • 最后回答于:2023-2-16 11:35
    请选择关闭问题的原因
    确定 取消
    返回顶部