📅  最后修改于: 2023-12-03 14:42:03.071000             🧑  作者: Mango
在 SQL Server 中,如果要向带有自增列(identity column)的表中插入数据,需要使用 SET IDENTITY_INSERT ON
来开启自增列插入。但是一旦插入完成,就需要使用 SET IDENTITY_INSERT OFF
来关闭自增列插入。本篇文章将介绍 IDENTITY_INSERT
关闭的使用方法。
SET IDENTITY_INSERT table_name OFF;
table_name
: 要关闭自增列插入的表名。以下示例展示如何关闭自增列插入功能。
首先创建一个带有自增列的表。
CREATE TABLE dbo.Person
(
ID INT IDENTITY(1,1),
Name VARCHAR(50)
);
接着插入一条数据。
INSERT INTO dbo.Person(Name) VALUES ('John');
如果未使用 SET IDENTITY_INSERT
来开启自增列插入,插入数据时会出现以下错误。
Cannot insert explicit value for identity column in table 'Person' when IDENTITY_INSERT is set to OFF.
为了避免这个错误,需要使用以下语句开启自增列插入。
SET IDENTITY_INSERT dbo.Person ON;
然后插入带有指定 ID 的数据。
INSERT INTO dbo.Person(ID, Name) VALUES (2, 'Jane');
完成插入后,需要使用以下语句关闭自增列插入。
SET IDENTITY_INSERT dbo.Person OFF;
现在可以插入不带有指定 ID 的数据了。
INSERT INTO dbo.Person(Name) VALUES ('Joe');
IDENTITY_INSERT
可以关闭自增列插入功能,从而使得可以插入带有指定 ID 的数据。但是在插入完成之后,务必要使用 SET IDENTITY_INSERT OFF
来关闭自增列插入,否则可能会出现错误。