您可以通过ID插入吗?

时间:2019-01-09 11:05:55

标签: sql sql-server identity-insert

我希望能够以特定的ID将某些内容插入到表中,因此我为表打开了IDENTITY_INSERT。但是,如果我只想自动递增来处理ID,则会出现此错误:

  

“必须为表中的标识列指定显式值   当IDENTITY_INSERT设置为ON或当   复制用户正在插入NOT FOR REPLICATION身份   列。”

有没有办法进行查询

INSERT INTO table (ID, something_else) VALUES (15, 'foo'); 

INSERT INTO table (something_else) VALUES ('foo'); 

同时工作?

1 个答案:

答案 0 :(得分:1)

如果没有在运行每个查询之间根据需要打开和关闭identity_insert的话,就无法做到这一点。

只有在执行查询的会话中将identity_insert设置为相关值时,每个版本才有效。

例如:

SET IDENTITY_INSERT TsiList ON;
INSERT INTO TsiList (ID, something_else) VALUES (15, 'foo'); 
SET IDENTITY_INSERT TsiList OFF;
INSERT INTO TsiList (something_else) VALUES ('foo');