我从插入语句获取范围标识时遇到问题。我以前做过很多次,但总是使用定义的值:
INSERT INTO t_table (field1, Field2)
VALUES (field1Val, field2Val);
SET @id = SCOPE_IDENTITY()
当您通过从另一个表中运行选择来获取插入的值时,如何做到这一点?
INSERT INTO t_table (field1, Field2)
SELECT value1, value2 FROM #tempTable;
SET @id = SCOPE_IDENTITY()
上述运行没有错误,但@id为空
由于您尝试在此处检索多个值,因此需要使用 OUTPUT 子句。它会将所有新插入的值返回到表或表变量中。
https://msdn.microsoft.com/en-us/library/ms177564.aspx