我希望能够以特定的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');
同时工作?
答案 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');