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