5

我在我的审计触发器中从 sys.dm_tran_current_transaction 捕获 transaction_id。我想知道的是transaction_id的唯一性。文档只说“当前快照的事务 ID”。

我只能假设这个“ID”将在以后重复使用,但我希望能对此进行一些确认。

4

2 回答 2

2

参考详情可在此链接查看

在此处输入图像描述

于 2012-06-12T18:52:48.253 回答
2

@abcdefghi 的答案很好,但只是补充一下;

  • Transaction_id 在一个事务中是相同的,
  • 在显式事务之外,每个批次的 transaction_id 更新,
  • transaction_id 在服务器重置时重置,因此随着时间的推移您将遇到相同的 transaction_id。

这导致您不能在审计表中使用 transaction_id,因为这种情况;

使用 transaction_id = 42 插入审计记录 sql server reset ... 执行了 41 个新批次 ... 插入了 transaction_id = 42 的审计记录

此外,您不能像时间戳一样使用 transaction_id(较高的值并不意味着以后的更改_并且您不能说相同的 ID 意味着相同的事务。

于 2014-07-31T10:57:55.200 回答