一位同事问我,如果SQL Server中有一个只有一个自动增量列的表,那么如何在该表中插入一个新行?
INSERT INTO MyTable() VALUES()
......不起作用。
至于为什么......我不太确定。但我发现这个问题很有吸引力。
答案 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
确保插入一个不在密钥中的值。