2017-07-14 80 views
0

我需要检查另一个过程中的指定事务以确保其他任何人都没有执行该过程。在SYBASE ASE 12.5中获取系统过程的ROWCOUNT

但对于这个问题,我试图利用一个系统过程

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' 

我尝试使用@@行数,但它总是返回1

EXEC sp_transactions 'xid','Warren1' 
SELECT @@RowCount 

回答

1

虽然你可以创建一个代理用于呼叫sp_transactions的桌面包装,然后运行select * from <proxy>/select @@rowcount ...这可能会对你想要的东西有点激烈/矫枉过正。我建议你看看sp_transactions(提示:它从master..systransactions中提取交易数据)的源代码,并推出你自己的代码,它提供了你想知道的内容。

+0

是啊,我是倾向于滚动我自己 - 只是想尽量避免... :( 这使我对SP的文本:sp_helptext的sp_transactions将 所以这是可行的,如果没有其他的土地我会的。将其标记为答案 –