您好我有一個存儲過程,我插入一行比選擇該行的ID。在一條語句中插入和選擇行ID
insert into tTest
( loca
,name
) values (
@loc
,@name
);
select id from tTest where [email protected];
我想知道是否有辦法將它合併爲一個語句。我可以在哪裏選擇新行的ID以及同時插入行。請告訴我。由於
您好我有一個存儲過程,我插入一行比選擇該行的ID。在一條語句中插入和選擇行ID
insert into tTest
( loca
,name
) values (
@loc
,@name
);
select id from tTest where [email protected];
我想知道是否有辦法將它合併爲一個語句。我可以在哪裏選擇新行的ID以及同時插入行。請告訴我。由於
您的格式是絕對離奇給我,但嘗試:
insert into tTest
( loca
,name
)
OUTPUT inserted.id
values (
@loc
,@name
);
如果以後需要使用該值,你可以將你的「一個說法」的要求,因爲你將需要:
使用SCOPE_IDENTITY()
DECLARE @id INT;
insert into tTest
( loca
,name
)
values (
@loc
,@name
);
SELECT @id = SCOPE_IDENTITY();
轉到矯枉過正,並使用一個表VA可變結構
DECLARE @idTable TABLE(ID INT);
insert into tTest
( loca
,name
)
OUTPUT inserted.id INTO @idTable
values (
@loc
,@name
);
-- reference @idTable later
謝謝,我以後如何在代碼中使用inserted.id?我只是使用inserted.id或需要設置它與一些變量? –
我需要稍後使用id將此添加的行ID添加到另一個表中。 –
@ J.Davidson我明白,但你的問題在一個陳述中明確指出。這真的是一個要求嗎?如果沒有,請把它從問題中刪除? –
查找到SQL服務器OUTPUT
條款:http://technet.microsoft.com/en-us/library/ms177564.aspx
如果'name'不是唯一的,你知道現在的做法可能返回多行,對不對?通常,您希望使用SCOPE_IDENTITY()來代替查詢表或使用OUTPUT子句。 –