数据库触发器
发布网友
发布时间:2022-04-20 20:57
我来回答
共2个回答
热心网友
时间:2022-04-08 10:32
系统在处理update动作时,它先删除该条记录,然后再添加一条符合条件的记录
在使用update触发器时,你可以根据自己的需求,如果你需要新添加的记录,
你可以选择inserted 表(当激活触发器时,新添加的记录被保存在inserted表中);
如果你需要修改前的那条记录,你可以使用deleted表(当触发器被激活后,修改前的
那条记录被保存在deleted表)中。当触发器执行完成后,这两个表即被删除。
热心网友
时间:2022-04-08 11:50
update之前的数据以及update之后的新数据
从 deleted 与 inserted 里面来获取.
下面是一个简单的例子, 演示 如何获取 更新前 与 更新后的数据.
1> CREATE TRIGGER AfterUpdateTest
2> ON test_trigger_table
3> FOR UPDATE
4> AS
5> DECLARE
6> @OldName VARCHAR(10),
7> @NewName VARCHAR(10);
8> BEGIN
9> PRINT('AFTER UPDATE');
10> SELECT @NewName = name FROM inserted;
11> SELECT @OldName = name FROM deleted;
12> PRINT('Old Name = ' + @OldName);
13> PRINT('New Name = ' + @NewName);
14> END;
15> go
1>
2> UPDATE test_trigger_table SET name = 'XYZ' WHERE id = 1;
3> go
AFTER UPDATE
Old Name = ABC
(1 行受影响)
New Name = XYZ
参考资料:http://hi.baidu.com/wangqing999/blog/item/126bdc0c7a7dd79b0a7b829d.html