没有@@transtate
有@@TRANCOUNT
Returns the number of active transactions for the current connection.

解决方案 »

  1.   

    @@TRANCOUNT
    返回当前连接的活动事务数。语法
    @@TRANCOUNT返回类型
    integer注释
    BEGIN TRANSACTION 语句使 @@TRANCOUNT 递增 1。ROLLBACK TRANSACTION 将 @@TRANCOUNT 递减为 0,但 ROLLBACK TRANSACTION savepoint_name 语句并不影响 @@TRANCOUNT 值。COMMIT TRANSACTION 或 COMMIT WORK 将 @@TRANCOUNT 递减 1。示例
    下面的示例用 @@TRANCOUNT 测试应该提交的打开事务。BEGIN TRANSACTION
    UPDATE authors SET au_lname = upper(au_lname)
    WHERE au_lname = 'White'
    IF @@ROWCOUNT = 2
       COMMIT TRANIF @@TRANCOUNT > 0
    BEGIN
       PRINT 'A transaction needs to be rolled back'
       ROLLBACK TRAN
    END
      

  2.   

    多谢楼上两位
    好象@@TRANCOUNT 和@@error配合来使用试用了一下效果不是很好,严重的错误根本就不会判断