Tro*_*tts 5 sql-server transaction temporal-tables
我正在 SQL Server 中使用时态表,生成的时间是 UTC 中的事务开始时间datetime2
。
SQL Server 中是否有一个函数或表可以获取相同的事务开始时间以在其他地方使用,而不需要我首先写入系统版本化表并从中进行选择?
我有一些非系统版本化表,它们是同一事务的一部分,并且我更希望记录的数据datetime2
匹配,而不是使用SysUTCDateTime
并使其变化。
我试图从中提取它,sys.dm_tran_active_transactions
但它datetime
和本地服务器时间似乎不同。
小智 0
您可以从sys.dm_tran_current_transaction获取当前事务的 id 。
然后您可以transaction_begin_time
从sys.dm_tran_active_transactions获取该列。
因此,请使用以下 T-SQL 语句之一:
SELECT transaction_begin_time = dtat.transaction_begin_time
FROM sys.dm_tran_current_transaction dtct
INNER JOIN sys.dm_tran_active_transactions dtat
ON dtct.transaction_id = dtat.transaction_id;
Run Code Online (Sandbox Code Playgroud)
或者
SELECT transaction_begin_time = dtat.transaction_begin_time
FROM sys.dm_tran_active_transactions dtat
WHERE dtat.transaction_id = CURRENT_TRANSACTION_ID();
Run Code Online (Sandbox Code Playgroud)
transaction_id
CURRENT_TRANSACTION_ID ()返回sys.dm_tran_current_transaction
.
归档时间: |
|
查看次数: |
3699 次 |
最近记录: |