SQL Server:没有BEGIN TRANSACTION的回滚

use*_*412 5 sql sql-server sql-server-2005 sql-server-2008

有没有办法我们可以使用ROLLBACK回滚到以前的事务状态BEGIN TRANSACTION

delete from table1;
ROLLBACK
Run Code Online (Sandbox Code Playgroud)

信息:

ROLLBACK TRANSACTION请求没有相应的BEGIN TRANSACTION.

任何输入都会有很大的帮助.

谢谢 !!!

Mr *_*ose 6

要在明确设置IMPLICIT_TRANSACTIONS ON时扩展gerrytans应答,可以使用ROLLBACK.请参阅与此相关的MSDN doco.请注意,这不是默认的自动提交事务模式.

这允许我运行一个类似的声明;

SET IMPLICIT_TRANSACTIONS ON

INSERT INTO my_table (item_type, start_date_time)
VALUES ('TEST', CURRENT_TIMESTAMP)

ROLLBACK

-- Shouldn't return the 'TEST' value inserted above.
SELECT * FROM my_table ORDER BY start_date_time DESC 
Run Code Online (Sandbox Code Playgroud)