如何插入只有一个 IDENTITY 列的表?
(在尝试回答这个问题的过程中提出了这个问题其他)
请考虑以下名为 GroupTable 的 MS-SQL 表:
GroupID ------- 1 2 3
其中 GroupID 是主键,并且是一个 Identity 列。
如何在不使用 IDENTITY_INSERT ON 的情况下向表中插入新行(从而生成新 ID)?
请注意:
INSERT INTO GroupTable() Values ()
...不会工作。
编辑:我们在这里谈论 SQL 2005 或 SQL 2008。
(Came up with this question in the course of trying to answer this other one)
Consider the following MS-SQL table, called GroupTable:
GroupID ------- 1 2 3
where GroupID is the primary key and is an Identity column.
How do you insert a new row into the table (and hence generate a new ID) without using IDENTITY_INSERT ON?
Note that this:
INSERT INTO GroupTable() Values ()
... won't work.
edit: we're talking SQL 2005 or SQL 2008 here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以尝试使用序列或类似的东西吗? 您从序列中进行选择,它将为您提供序列中的下一个值。
Can you try using a Sequence or something similar? Where you select from a Sequence and it will give you the next value in the sequence.
这实际上是有效的——
插入表默认值
This will work actually--
insert into TABLE default values
这应该有效:
This should work:
干得好:
Here you go:
一次可以插入多行。
例如,插入 30 行。
插入组表默认值
GO 30
这将通过每次递增标识列来插入 30 行。
It is possible to insert more than one row at a time.
For e.g., to insert 30 rows.
INSERT INTO GroupTable DEFAULT VALUES
GO 30
This will insert 30 rows by incrementing the identity column each time.