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倍的因素并非闻所未闻。 |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |