USE tempdb IF OBJECT_ID ('dbo.test') IS NOT NULL DROP TABLE dbo.test GO CREATE TABLE dbo.test ( id INT NOT NULL, CONSTRAINT pk_id PRIMARY KEY (id) ) GO BEGIN TRANSACTION INSERT INTO dbo.test(id)VALUES (0 ) INSERT INTO dbo.test(id)VALUES (1 ) INSERT INTO dbo.test(id)VALUES (1 ) INSERT INTO dbo.test(id)VALUES (2 ) COMMIT TRANSACTION /*******结果********** (1 行受影响) (1 行受影响) 消息 2627,级别 14,状态 1,第 19 行 违反了 PRIMARY KEY 约束“pk_id”。不能在对象“dbo.test”中插入重复键。重复键值为 (1)。 语句已终止。 (1 行受影响) */ SELECT *FROM dbo.test /**********结果********* id 0 1 2 */ TRUNCATE TABLE dbo.test SET XACT_ABORT ON BEGIN TRANSACTION INSERT INTO dbo.test(id)VALUES (0 ) INSERT INTO dbo.test(id)VALUES (1 ) INSERT INTO dbo.test(id)VALUES (1 ) INSERT INTO dbo.test(id)VALUES (2 ) COMMIT TRANSACTION /**********结果************ (1 行受影响) (1 行受影响) 消息 2627,级别 14,状态 1,第 61 行 违反了 PRIMARY KEY 约束“pk_id”。不能在对象“dbo.test”中插入重复键。重复键值为 (1)。 */ SELECT *FROM dbo.test /******结果为空************/