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

前端之家收集整理的这篇文章主要介绍了sql-server – 获取SQL Server 2008中新插入行的主键前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一堆数据将插入到表中.这个问题是我需要它将主键返回到该表.我不知道是否有这样的事情:
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语句的结果集读取它们.

猜你在找的MsSQL相关文章