比如我给table1 做触发器,在update的时候把update之前的数据备份到table2上
CREATE TRIGGER trigger_table1
ON table1
FOR UPDATE --一个触发器只建一个触发器类型
AS
insert into table2 select * from deleted
这样就可以了,table1和table2列名一样
现在需要的是,我想在update table1 以后,table2上能够显示出来当时update的操作时间,请问如何做?
能不能具体点,我知道用getdate()但是table2又多了一列
sqlserver,触发器做备份表如何插入当前时间?
答案:2 悬赏:30 手机版
解决时间 2021-03-13 19:05
- 提问者网友:了了无期
- 2021-03-13 14:00
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-03-13 15:24
下面的代码的前提是,已经有了保存时间的字段。比如就叫:update_data
CREATE TRIGGER trigger_table1
ON table1
FOR UPDATE
AS
BEGIN
INSERT INTO table2(xx,xx,xx,update_date)
SELECT xx,xx,xx,GETDATE() FROM Instered
END
CREATE TRIGGER trigger_table1
ON table1
FOR UPDATE
AS
BEGIN
INSERT INTO table2(xx,xx,xx,update_date)
SELECT xx,xx,xx,GETDATE() FROM Instered
END
全部回答
- 1楼网友:蓝房子
- 2021-03-13 16:00
最好是做一个视图,把相关的字段包含在视图中,然后对视图执行插入操作,再在视图上写insteaded of 触发器,这样既避免了触发器对表的依赖,有提高了基表的安全性,而且如果今后在增加其他表时,只需要把相关操作语句加入即可!提高可维护性!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯