我有一个存储过程,为了这个问题的目的我大大缩小了,但实质上我需要帮助的是这个问题。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