rollback 回滚的意思。 就是数据库里做修改后 ( update ,insert , delete)未commit 之前 使用rollback 可以恢复数据到修改之前。
1>
2> select * from test_main
3> go
id value
----------- ----------
1 ONE
2 TWO
3 THREE
(3 行受影响)
1> BEGIN TRY
2> -- SQL Server 需要显示的定义 开始一个事务.
3> BEGIN TRANSACTION;
4> -- 插入2条同样的数据,使主键重复,引发错误后回滚事务.
5> INSERT INTO test_main(id, value) VALUES (4, 'FOUR');
6> INSERT INTO test_main(id, value) VALUES (4, 'FOUR');
7> -- 执行成功后,需要提交事务.
8> COMMIT;
9> END TRY
10> BEGIN CATCH
11> PRINT('Main.错误代码 = ' + STR(ERROR_NUMBER()));
12> PRINT('Main.错误严重级别 = ' + STR(ERROR_SEVERITY()));
13> PRINT('Main.错误状态代码 = ' + STR(ERROR_STATE()));
14> PRINT('Main.错误信息 = ' + ERROR_MESSAGE());
15> -- 回滚事务
16> ROLLBACK;
17> END CATCH
18>
19> go
(1 行受影响)
Main.错误代码 = 2627
Main.错误严重级别 = 14
Main.错误状态代码 = 1
Main.错误信息 = 违反了 PRIMARY KEY 约束 'PK__test_main__47DBAE45'。不能在对象 'd
bo.test_main' 中插入重复键。
1> select * from test_main;
2> go
id value
----------- ----------
1 ONE
2 TWO
3 THREE
(3 行受影响)