【发布时间】:2010-11-07 03:12:24
【问题描述】:
一位同事问我,如果你在 SQL Server 中有一个表只有一个自增列,你如何在该表中插入一个新行?
INSERT INTO MyTable() VALUES()
...不起作用。
至于为什么...我不太确定。但我发现这个问题很有说服力。
【问题讨论】:
标签: sql-server insert auto-increment
一位同事问我,如果你在 SQL Server 中有一个表只有一个自增列,你如何在该表中插入一个新行?
INSERT INTO MyTable() VALUES()
...不起作用。
至于为什么...我不太确定。但我发现这个问题很有说服力。
【问题讨论】:
标签: sql-server insert auto-increment
insert into mytable default values
【讨论】:
显然这是可行的:
INSERT INTO MyTable DEFAULT VALUES
(我打了之后才发现。对不起!)
【讨论】:
使用默认值,也适用于默认值
create table #test (id int identity, Somedate datetime default getdate())
insert #test default values
select * from #test
id 某天
1 2009-06-30 16:04:03.307
【讨论】:
set identity_insert MyTable ON
insert MyTable(MyIdentColumn) values(42)
set identity_insert MyTable OFF
【讨论】:
使用 IDENTITY_INSERT 设置:
SET IDENTITY_INSERT MyTable ON INSERT INTO MyTable (AutoIncrementColumnName, OtherColumnNames...) 值(9999,其他数据...) SET IDENTITY_INSERT MyTable 关闭
确保您插入的值不在键中。
【讨论】: