嗨,去看看这个链接Rollback in SQL
我有这个奇怪的错误,我使用MSSQL 2008 R2和ZendFw 1.12
首先。回滚没有在try内失败。
// Zend_DB_Table Adapter $adapter = Zend_Db_Table::getDefaultAdapter(); // Start Transaction $adapter->beginTransaction(); try { $adapter->rollBack(); return (int) 1; } catch (Exception $e) { throw new Api_Exception($e->getMessage(), $e->getCode(), $e); }
但是..回滚在catch中失败。.>
是的,我故意在尝试以下波纹管时产生错误,以使其进入陷阱。.>>
// Zend_DB_Table Adapter $adapter = Zend_Db_Table::getDefaultAdapter(); // Start Transaction $adapter->beginTransaction(); try { return (int) A; } catch (Exception $e) { $adapter->rollBack(); throw new Api_Exception($e->getMessage(), $e->getCode(), $e); }
它返回..
Zend_Db_Adapter_Sqlsrv_Exception: A transaction must be started by calling sqlsrv_begin_transaction before calling sqlsrv_commit or sqlsrv_rollback.
请提供任何线索?
[我有这个奇怪的错误,我使用MSSQL 2008 R2和ZendFw 1.12,首先。.回滚没有在尝试中失败。.// Zend_DB_Table Adapter $ adapter = Zend_Db_Table :: getDefaultAdapter(); //开始...
嗨,去看看这个链接Rollback in SQL
您可以使用安全简单的代码来100%运行(运行所有查询行),也可以不运行任何代码。>
|query 1| = like insert into or select or ... |count of lines| = number off query DECLARE @rowcount int set @rowcount = 0 ; BEGIN TRANSACTION [Tran1] BEGIN TRY <Query 1> ; set @rowcount = (@rowcount + @@ROWCOUNT); <Query 2> ; set @rowcount = (@rowcount + @@ROWCOUNT); ... IF @rowcount = <count of lines> COMMIT TRANSACTION[Tran1] ELSE ROLLBACK TRANSACTION[Tran1] END TRY BEGIN CATCH ROLLBACK TRANSACTION[Tran1] END CATCH
例如,此代码运行2插入行查询中,但要么运行所有他,要么不运行任何内容并回滚
DECLARE @rowcount int set @rowcount = 0 ;
BEGIN TRANSACTION [Tran1]
BEGIN TRY
insert into [database].[dbo].[tbl1] (fld1) values('1') ;
set @rowcount = (@rowcount + @@ROWCOUNT);
insert into [database].[dbo].[tbl2] (fld1) values('2') ;
set @rowcount = (@rowcount + @@ROWCOUNT);
IF @rowcount = 2
COMMIT TRANSACTION[Tran1]
ELSE
ROLLBACK TRANSACTION[Tran1]
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION[Tran1]
END CATCH
嗨,去看看这个链接Rollback in SQL