如何使用SQL Trigger获取旧值和新值?

时间:2017-06-08 08:45:10

标签: sql sql-server

我在表中有很多字段,我正在尝试审核任何插入 - 更新 - 在另一个表中删除。

我只是遇到了我选择的确切字段值的问题。

我编写了这段代码,我希望得到一个确切字段的旧值和新值。

WinWaitActive

1 个答案:

答案 0 :(得分:1)

重新思考你的架构。试图单独检测表格中的变化并分别存储每个表格是一种灾难。

只需将Deleted表的全部内容存储在审计表中,然后确保压缩表以减少大量重复项使用的空间量。

磁盘存储空间便宜,CPU功率不高。

修改:阅读您无法更改架构的评论;我说你必须这样做,因为另一种方法是使用这样的触发器,如果​​该表甚至被大量使用,将导致重大问题。即使在光标外进行单独插入也会让你非常伤心,你会希望你从未出生过。对于每个 ms 触发器运行,锁争用(或更糟糕的是,死锁)的风险呈指数级增长。