如何在单个查询(sql server)中插入1条记录后检索自动增量值
Posted
技术标签:
【中文标题】如何在单个查询(sql server)中插入1条记录后检索自动增量值【英文标题】:How to Retrieve autoincremnt value after inserting 1 record in single query (sql server) 【发布时间】:2011-12-22 07:09:47 【问题描述】:我的表中有两个字段:
一个是主键自动递增值,第二个是文本值。 可以说:xyzId & xyz
所以我可以像这样轻松插入
insert into abcTable(xyz) Values('34')
执行上述查询后,它必须插入这些信息
xyzId=1 & xyz=34
为了检索,我可以像这样检索
select xyzId from abcTable
但是为此我必须写下两个操作。我不能在单/子查询中检索吗?
谢谢
【问题讨论】:
get new SQL record ID的可能重复 【参考方案1】:如果您使用的是 SQL Server 2005 或更高版本,则可以使用 output 子句返回自动创建的 ID。
试试这个:
insert into abcTable(xyz)
output inserted.xyzId
values('34')
【讨论】:
【参考方案2】:我认为您不能在单个查询中进行插入和选择。 您可以使用存储过程将两条指令作为原子操作执行,或者您可以使用 ';' 在代码中使用两条指令构建查询(分号)作为指令之间的分隔符。
无论如何,对于 SQL Server 中的选择标识值,您必须检查 @@IDENTITY
、SCOPE_IDENTITY
和 IDENT_CURRENT
。它比表格中的选择更快更干净。
【讨论】:
以上是关于如何在单个查询(sql server)中插入1条记录后检索自动增量值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 2008 中通过单个查询更新两个表 [重复]
如何从1个表中选择许多行并将其插入另一个表中特定行的特定JSONB字段中?但是在单个原始SQL查询中