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

数据库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")

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...