在 SQL Server 中将 IDENTITY_INSERT 更改为 ON

H. *_*lyn 8 sql-server insert identity

如何将 插入ID到 SQL Server 的标识列中?我会在我的桌子上制作一个特殊的项目,我会通过ID. 因此,因为所有其他 ID 都大于或等于 1,所以我将赋予该特殊项目的 ID 为零。

现在的问题是,当我创建该表时,我已将列 ID 的标识设置为 true。如果我现在插入带有以下代码的特殊项目,则会出现下一个错误:

INSERT INTO MyTable(ID, Name, Description) 
VALUES (0, 'Special title', 'special item');
Run Code Online (Sandbox Code Playgroud)

错误:

设置为MyTable时,无法为表中的标识列插入显式值。IDENTITY_INSERTOFF

如何更改此表、列或属性,以便创建 ID 为零的记录?

AA.*_*.SC 15

显式标识插入需要将IDENTITY_INSERT属性设置为 ON。

SET IDENTITY_INSERT MyTable ON  -- Statement Allows explicit values to be inserted into 
                                -- the identity column of a table.
GO

INSERT INTO MyTable(ID, Name, Description) 
VALUES (0, 'Special title', 'special item');
GO

SET IDENTITY_INSERT MyTable OFF  -- Statement revert granted permission
GO
Run Code Online (Sandbox Code Playgroud)