事务不回滚的例子,请高手指教
在自动提交事务模式下,在查询分析器中输入如下 SQL语句:
CREATE TABLE TestBatch (Cola INT PRIMARY KEY, Colb CHAR(3))
/*在这个事务内部,有个运行时错误,就是往主键中插入相同的值,但是事务不会回滚*/
begin tran
INSERT INTO TestBatch VALUES (1, 'aaa')
INSERT INTO TestBatch VALUES (2, 'bbb')
INSERT INTO TestBatch VALUES (1, 'ccc') /* 主键相同错误 */
commit
SELECT * FROM TestBatch
/* Returns rows 1 and 2 */
运行以后出现如下信息:
(所影响的行数为 1 行)
(所影响的行数为 1 行)
服务器: 消息 2627,级别 14,状态 1,行 1
违反了 PRIMARY KEY 约束 'PK__TestBatch__22AA2996'。不能在对象 'TestBatch' 中插入重复键。
语句已终止。
(所影响的行数为 2 行)
这种错误 ,事务为什么不回滚??