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で挿入された監査レコードSQLServerのリセット...41の新しいバッチが実行されました...transaction_id=42で挿入された監査レコード

また、タイムスタンプのようにtransaction_idを使用することはできません(値が大きいほど後の変更を意味するわけではなく、同じIDが同じトランザクションを意味するとは言えません。

于 2014-07-31T10:57:55.200 に答える