2015-06-17 42 views
0

從插入語句中獲取範圍標識時出現問題。我已經定義的值以前做過很多次,但總是:在插入select後選擇SCOPE_IDENTITY()

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() 

無差錯以上運行,但既然你正試圖在這裏檢索多個值,則需要使用OUTPUT子句@id是空

+0

要在肖恩的答案擴大:您可以使用['OUTPUT'(https://msdn.microsoft.com/en-us/library/ms177564.aspx)子句,以獲得從任何數據行(注意複數),例如新插入的行的標識列值。 'OUTPUT'可以與'INSERT','UPDATE','DELETE'和'MERGE'一起使用,並在'UPDATE'的情況下提供對值和值之間的訪問。一個值得擁有的工具在你的口袋裏。 – HABO

回答