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

sql-server – 从SQL Server 2008中的INSERT语句返回值

发布时间:2020-12-24 10:50:13 所属栏目:MsSql教程 来源:网络整理
导读:数据库:SQL Server 2008 有没有办法让insert语句在SQL Server中返回一个值, 有类似的问题 Return a value from a insert statement,谈论ORACLE. 我没有太多使用数据库,也没有太多了解ORACLE / SQL Server,所以很遗憾再次问到它. 为简单起见,我举一个小例

数据库:SQL Server 2008

有没有办法让insert语句在SQL Server中返回一个值,

有类似的问题

Return a value from a insert statement,谈论ORACLE.

我没有太多使用数据库,也没有太多了解ORACLE / SQL Server,所以很遗憾再次问到它.

为简单起见,我举一个小例子:

表EmpDetails有EmpiD和EmpName. EmpID的值由数据库自动生成.

INSERT INTO EMPDETAILS VALUES("John")

现在我想获得与John关联的EmpID的值

我不想要存储过程,我只想要一个SQL语句.

解决方法

是的 – 您可以在INSERT语句中使用鲜为人知且少用的 OUTPUT clause
INSERT INTO dbo.YourTable(col1,col2,col3,....,ColN)
OUTPUT Inserted.Col1,Inserted.Col5,Inserted.ColN
VALUES(val1,val2,val3,.....,valN)

这将返回一组正常的数据,您可以根据需要处理这些数据.

正如MSDN文档所示,您还可以将OUTPUT值发送到例如如果需要,可以使用表变量或临时表供以后使用.

要回答您更新的问题,请使用以下命令:

INSERT INTO dbo.EMPDETAILS(EmpName)
OUTPUT Inserted.EmpID
VALUES("John")

(编辑:源码网)

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

    热点阅读