![]() |
1
2
在插入和删除的伪列中,更新触发器已经具有受更新语句影响的记录。您可以将它们的主键列选择到充当队列的初步审计表中,并将更复杂的计算移动到单独的作业中。 另一个选择是 OUTPUT 用于更新语句的子句,该语句是在SQL Server 2005中引入的。(Philip Kelley评论后更新) |
![]() |
2
2
SQLServer知道如何回滚,因为它有事务日志。不是可以在数据表中找到的内容。 您可以尝试向行中添加时间戳列,然后保存“当前”时间戳,更新所有行。更改的行应该是时间戳大于“当前”时间戳的所有行。这将帮助您查找已更改的行,但不查找已更改的行。 |
![]() |
3
1
你可以使用 Change Tracking 或 Change Data Capture . 这些技术内置于引擎中,用于跟踪更改,并利用复制基础结构(日志读取器或表触发器)。两者都只在SQL Server 2008或2008 R2中可用,CDC需要企业版许可。 你想做的其他事情最终会归结为:
没有免费的午餐。如果审计是一项要求,那么必须考虑审计的开销,并且必须相应地进行能力规划。所有数据审计解决方案将 重要的 管理费用,因此运营成本增加2倍、4倍甚至10倍的因素并非闻所未闻。 |
![]() |
user1312312 · 如何为一组表编写通用触发器? 3 年前 |
![]() |
max · 如果未在INSERT上设置字段,则触发器行为怪异 7 年前 |
![]() |
Kankuro · 从Google工作表中删除自定义菜单 7 年前 |
![]() |
Egor · SQL Server在数据库触发器中获取表名 7 年前 |
![]() |
hope1234 · 如何在sql触发器中使用insert语句中的变量 7 年前 |
|
user7468494 · 触发器中的SQL大小写 7 年前 |