Rel*_*ity 0 insert rollback sql-server-2008
我正在使用SQL Server 2008.
我有一个INSERT
声明,从一个表到另一个表插入大量的记录.在插入时,我得到了主键异常.
我的问题是......如果在插入第5行时发生异常......是否会回滚所有四个记录(先前插入的记录)?
提前致谢.
是.它将回滚在该语句中插入的所有行,除非您IGNORE_DUP_KEY
在索引上启用了该选项.
create table t1
(
col int NOT NULL PRIMARY KEY WITH (IGNORE_DUP_KEY=ON)
)
create table t2
(
col int NOT NULL PRIMARY KEY WITH (IGNORE_DUP_KEY=OFF)
)
INSERT INTO t1 values (1),(1)
INSERT INTO t2 values (1),(1)
SELECT * FROM t1 /*Returns 1 row*/
SELECT * FROM t2 /*Returns 0 rows*/
Run Code Online (Sandbox Code Playgroud)