【问题标题】:Get ROWCOUNT of SYSTEM PROCEDURE IN SYBASE ASE 12.5在 SYBASE ASE 12.5 中获取 SYSTEM PROCEDURE 的 ROWCOUNT
【发布时间】:2017-07-14 16:28:35
【问题描述】:

我需要检查另一个过程中的命名事务,以确保它没有被其他人执行。

但是对于这个问题,我正在尝试利用系统过程

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

【问题讨论】:

    标签: database tsql sap-ase system-procedures


    【解决方案1】:

    虽然您可以创建一个代理表包装器来调用sp_transactions,然后运行select * from <proxy> / select @@rowcount ...这对于您想要的可能有点过激/矫枉过正。

    相反,我建议您查看sp_transactions 的源代码(提示:它从master..systransactions 提取事务数据)并推出您自己的代码,以提供您想知道的内容。

    【讨论】:

    • 是的,我倾向于自己滚动 - 只是想尝试避免这种情况...... :( 这给了我 sp 的文本:sp_helptext sp_transactions 所以它是可行的。如果没有其他的土地我会将此标记为答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多