您可以使按 Id 插入可选吗?

Can you make inserting by Id optional?

我希望能够在我的 table 中以特定 ID 插入一些东西,所以我为 table 打开了 IDENTITY_INSERT。但是,如果我只是想让自增来处理ID,就会出现这个错误:

"Explicit value must be specified for identity column in table 'TsiList' either when IDENTITY_INSERT is set to ON or when a replication user is inserting into a NOT FOR REPLICATION identity column."

有没有办法进行查询

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

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

同时工作?

如果不根据需要在每个查询 运行 之间打开和关闭 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');