我有一堆数据将插入到表中.这个问题是我需要它将主键返回到该表.我不知道是否有这样的事情:
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
维基百科说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语句的结果集读取它们.