我有一個存儲過程,爲了這個問題的目的我大大縮小了,但實質上我需要幫助的是這個問題。SQL Server存儲過程參數輸出
如果表xyz
中的一行已更新,我需要將ID附加到對方並輸出回調用應用程序。更新按預期工作,問題在於我構建輸出@IPV_ID_Found
的方式(請參閱代碼底部的註釋部分)。
@IPV_Status varchar (50),
@IPV_ID_Found varchar(500) = 'A' OUTPUT
IF (@IPV_Status ='closed')
BEGIN
UPDATE TEST_TBL
SET
Status = 'xyz',
WHERE
ID = @IPV_ID
-- this works for one ID
SELECT @IPV_ID_Found = (CAST(@IPV_ID AS VARCHAR(500)))
-- this does not work for multiple IDs
SELECT @IPV_ID_Found = @IPV_ID_Found + (CAST(@IPV_ID AS VARCHAR(500))) + ','
-- neither does this
SET @IPV_ID_Found = @IPV_ID_Found + (CAST(@IPV_ID AS VARCHAR(500))) + ','
SELECT @IPV_ID_Found
END
對不起格式化,我把代碼放在代碼塊中,但它沒有佔用...... – RonanC 2012-01-06 10:45:01
嗯......你正在用'ID = @ IPV_ID'更新你的表格 - 這怎麼能導致多個ID是回報?你想報告什麼ID? – 2012-01-06 10:51:52
不存在多個ID:如果您有'UPDATE ... ID = @ IPV_ID','='表示一行。所以給更好的代碼,示例數據 – gbn 2012-01-06 10:59:49