sql server触发器的问题

sufsoft sufsoft 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有一个业务需要用到触发器:当users表中的某个user的信息被更新或者有新的user被insert进来的话,就把更新了的user信息或者新insert的user信息插入到另一个表backUpUsers.
我这边用到的是after update,insert的写法,然后从inserted内存表中拿user的数据。但是执行后发现,更新了的user信息可以插入到backUpUsers表中,但是更新前的那个user信息也会插入到backUpUsers表中。
不知道说清楚没有,举个例子吧:

users表
user_id user_name user_age user_tel user_address
1 s1234567A tester1 20 13787346725 beijing
2 s1234567B tester2 20 15876239087 sichuan

backUpUsers表
user_id user_name user_age user_tel user_address backUp_dte
1 s1234567A tester1 20 13787346725 beijing 2013-08-12
2 s1234567B tester2 20 15876239087 sichuan 2013-08-13

此时,users表中的user s1234567A的电话和住址被更新了,那么此时就要通过触发器把更新后的user s234567A重新insert到backUpUsers表中去,正确的情况下,backUpUsers表中的数据应该是这样:
backUpUsers表
user_id user_name user_age user_tel user_address backUp_dte
1 s1234567A tester1 20 13787346725 beijing 2013-08-12
2 s1234567B tester2 20 15876239087 sichuan 2013-08-13
3 s1234567A tester1 20 13087652378 shanghai 2013-08-14

但是现在却成了这样:
backUpUsers表
user_id user_name user_age user_tel user_address backUp_dte
1 s1234567A tester1 20 13787346725 beijing 2013-08-12
2 s1234567B tester2 20 15876239087 sichuan 2013-08-13
3 s1234567A tester1 20 13787346725 beijing 2013-08-12
4 s1234567A tester1 20 13087652378 shanghai 2013-08-14

也就是说,在insert更新的信息同时也把原来的user s1234567A又重新insert到backUpUsers表中,这个是不对的,那为什么会出现这种情况呢,希望大家可以帮着分析一下!!!


...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
sufsoft
应用实例 27,579 成员 68,540 内容