如果我的表只有一个自动增量列,我该如何插入?

时间:2009-06-30 19:59:52

标签: sql-server insert auto-increment

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

INSERT INTO MyTable() VALUES()

......不起作用。

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

5 个答案:

答案 0 :(得分:21)

insert into mytable default values

答案 1 :(得分:2)

显然这有效:

INSERT INTO MyTable DEFAULT VALUES

(在我点击Ask Question后发现它。抱歉!)

答案 2 :(得分:2)

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

create table #test (id int identity, Somedate datetime default getdate())


insert #test default values

select * from #test

id Somedate

1 2009-06-30 16:04:03.307

答案 3 :(得分:0)

set identity_insert MyTable ON

insert MyTable(MyIdentColumn) values(42)

set identity_insert MyTable OFF

答案 4 :(得分:0)

使用IDENTITY_INSERT设置:

SET IDENTITY_INSERT MyTable ON INSERT INTO MyTable(AutoIncrementColumnName,OtherColumnNames ...) VALUES(9999,OtherData ...) SET IDENTITY_INSERT MyTable OFF

确保插入一个不在密钥中的值。