加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 获取SQL Server 2008中新插入行的主键

发布时间:2020-12-12 08:47:52 所属栏目:MsSql教程 来源:网络整理
导读:我有一堆数据将插入到表中.这个问题是我需要它将主键返回到该表.我不知道是否有这样的事情: insert into TABLE (...) values (...) RETURNING p_key 要么 select p_key from (insert into TABLE (...) values (...)) 我正在为浏览器创建一个解决方法并保存信
我有一堆数据将插入到表中.这个问题是我需要它将主键返回到该表.我不知道是否有这样的事情:
insert into TABLE (...) values (...) RETURNING p_key

要么

select p_key from (insert into TABLE (...) values (...))

我正在为浏览器创建一个解决方法并保存信息,这些信息将或多或少添加一行,然后更新它…但是没有主键,没有办法更新它,因为没有引用它.

我在网上看,通过google发现了一些例子,但是这些例子让我略为混淆.

http://en.wikipedia.org/wiki/Insert_(SQL)#Retrieving_the_key

http://www.daniweb.com/web-development/databases/ms-sql/threads/299356/returning-identity-of-last-inserted-row-uniqueidentifier

维基百科说SQL Server 2008使用OUTPUT而不是RETURNING,可能使用类似OUTPUT p_key

解决方法

如果您正在插入一整行行,则选择SCOPE_IDENTITY()将不会.而SCOPE_IDENTITY也只适用于(数字)标识列 – 有时你的PK是别的…

但SQL Server确实有OUTPUT子句 – and it’s very well documented on MSDN!

INSERT INTO dbo.Table(columns)
OUTPUT INSERTED.p_key,INSERTED.someothercolumnhere .......
VALUES(...)

这些值将被“回显”回到呼叫应用,例如您将在SQL Server Management Studio中的网格中看到它们,或者您可以从C#或VB.NET调用此INSERT语句的结果集读取它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读