Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如果我有一个只有一个自动递增列的表,我如何插入它?_Sql Server_Insert_Auto Increment - Fatal编程技术网

Sql server 如果我有一个只有一个自动递增列的表,我如何插入它?

Sql server 如果我有一个只有一个自动递增列的表,我如何插入它?,sql-server,insert,auto-increment,Sql Server,Insert,Auto Increment,一位同事问我,如果SQL Server中有一个表只有一个自动递增列,如何在该表中插入新行 INSERT INTO MyTable() VALUES() …不起作用 至于为什么。。。我不太确定。但我发现这个问题很有说服力。显然这是可行的: INSERT INTO MyTable DEFAULT VALUES (在我点击“询问问题”后才发现它。抱歉!)使用标识\u插入设置: 设置标识\u在上插入MyTable 插入MyTable(自动递增ColumnName、其他ColumnName…) 值(9

一位同事问我,如果SQL Server中有一个表只有一个自动递增列,如何在该表中插入新行

INSERT INTO MyTable() VALUES()
…不起作用

至于为什么。。。我不太确定。但我发现这个问题很有说服力。

显然这是可行的:

INSERT INTO MyTable DEFAULT VALUES

(在我点击“询问问题”后才发现它。抱歉!)

使用标识\u插入设置:

设置标识\u在上插入MyTable 插入MyTable(自动递增ColumnName、其他ColumnName…) 值(9999,其他数据…) 将IDENTITY\u INSERT MyTable设置为OFF


确保插入的值不在键中。

使用默认值,也可以使用默认值

insert into mytable default values
create table #test (id int identity, Somedate datetime default getdate())


insert #test default values

select * from #test
某天


1 2009-06-30 16:04:03.307

有趣的方法。如果将42替换为计算下一个自动增量值的值(如MAX(id)+1),效果可能会更好。计算MAX+1将无法在标识列中插入显式值。42只是一个例子,你可以插入任何你想插入的值。如果你只是想要最大值,你根本不会使用我的例子。参见问题
create table #test (id int identity, Somedate datetime default getdate())


insert #test default values

select * from #test