sys.dm_tran_current_transaction。 transaction_id有多独特

时间:2012-06-12 18:35:00

标签: sql-server

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

我只能假设这个“身份证”将在以后重复使用,但我希望对此有所确认。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

@ abcdefghi的答案很好,但只是添加它;

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

这会导致您无法在审计表中使用transaction_id,因为这种情况;

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

插入的审计记录

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