Мне нужно проверить именованную транзакцию в другой процедуре, чтобы убедиться, что она не была выполнена кем-либо еще.
Но для этого вопроса я пытаюсь использовать системную процедуру
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