我需要在另一个过程中检查命名事务,以确保它没有被其他任何人执行。
但是对于这个问题,我试图利用一个系统过程
EXEC sp_transactions 'xid','MyTran1' -- This will return a result if it finds a named transaction called MyTran1
我想知道它是否返回一行... RowsReturned > 1
所以我做了以下
BEGIN TRAN MyTran1 -- named transaction
BEGIN TRAN MyTran2 -- named transaction
如果我运行EXEC sp_transactions
2 行返回
如果我运行EXEC sp_transactions 'xid','MyTran1'
- 返回一行
现在我需要做类似的事情
DECLARE @nameTranFound int
SET @nameTranFound = EXEC sp_transactions 'xid','MyTran1'
我尝试使用@@RowCount,但它总是返回 1
EXEC sp_transactions 'xid','Warren1'
SELECT @@RowCount