事务的开启、提交与回滚成对使用,一般不会这种提示

解决方案 »

  1.   

    你可以考虑这样处理,定义一个变量,保存开启的事务.开启事务的时候将其+1提交/回滚事务的时候,先判断是否有事务(其值是否>0),再处理并将其值-1
      

  2.   

    Transact-SQL 参考  
    @@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
    请参见BEGIN TRANSACTIONCOMMIT TRANSACTIONROLLBACK TRANSACTION系统函数©1988-2000 Microsoft Corporation。保留所有权利。
      

  3.   

    事物是成对出现的,尚需提示是因为你程序有问题
    我曾进在错误处理加过,但如果怎出错误,就出现你所说的现象
    去掉就好了