14

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

INSERT INTO MyTable() VALUES()

...不起作用。

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

4

5 回答 5

25
insert into mytable default values
于 2009-06-30T20:02:20.887 回答
2

显然这有效:

INSERT INTO MyTable DEFAULT VALUES

(在我点击提问后才发现它。对不起!)

于 2009-06-30T20:01:24.807 回答
2

使用默认值,也适用于默认值

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

于 2009-06-30T20:03:42.837 回答
0
set identity_insert MyTable ON

insert MyTable(MyIdentColumn) values(42)

set identity_insert MyTable OFF
于 2009-06-30T20:01:43.353 回答
0

使用 IDENTITY_INSERT 设置:

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

确保您插入了一个不在键中的值。

于 2009-06-30T20:01:50.950 回答