Sql INSERT语句中主键的棘手问题

Sql INSERT语句中主键的棘手问题,sql,sql-server,Sql,Sql Server,我在SQL Server数据库中有一个具有自动递增主键的表[ID]。是否有某种方法将[ID]列包含在INSERT语句中,以便数据库忽略它?关于表格配置的一些技巧 我不是在电脑上工作(在欧姆龙NJ PLC上),所以我不能自己写语句。相反,它们是从结构映射的。而且,如果可能的话,我想对INSERT和SELECT使用相同的结构(我需要[ID]以便以后进行更新)。我也不想自己生成索引。虽然在SQL Server中,它的危害较小。,但您需要为插入的列提供一个值。有一个名为DEFAULT的特殊值插入默认值。

我在SQL Server数据库中有一个具有自动递增主键的表
[ID]
。是否有某种方法将
[ID]
列包含在
INSERT
语句中,以便数据库忽略它?关于表格配置的一些技巧


我不是在电脑上工作(在欧姆龙NJ PLC上),所以我不能自己写语句。相反,它们是从结构映射的。而且,如果可能的话,我想对
INSERT
SELECT
使用相同的结构(我需要
[ID]
以便以后进行
更新)。我也不想自己生成索引。虽然在SQL Server中,它的危害较小。

,但您需要为插入的列提供一个值。有一个名为
DEFAULT
的特殊值插入默认值。但是,它不能与
IDENTITY
列一起使用

通常的
insert
方法是省去列:

insert into t (<all columns but id>)
    values (<all values for other columns>);

是一个dbfiddle。

在SQL Server中,需要为插入的列提供一个值。有一个名为
DEFAULT
的特殊值插入默认值。但是,它不能与
IDENTITY
列一起使用

通常的
insert
方法是省去列:

insert into t (<all columns but id>)
    values (<all values for other columns>);

是dbfiddle。

如果要在标识上插入ID的显式值,可以在插入之前使用SET insert_identity on语句。之后,您将通过语句SET INSERT_identity OFF再次启用标识


希望这有帮助。

如果要在标识上插入ID的显式值,可以在插入之前使用SET insert_identity on语句。之后,您将通过语句SET INSERT_identity OFF再次启用标识


希望这有帮助。

谢谢!巧妙的把戏。虽然我决定采取不同的方法,但在这个问题消失的地方,触发器在解决另一个问题时很方便,我做到了。谢谢!巧妙的把戏。虽然我决定采取不同的方法,当这个问题消失时,触发器在解决另一个问题时很方便。