【发布时间】:2019-12-03 19:28:59
【问题描述】:
我正在尝试从我的 SP 获取返回码,然后根据它的值(0 或 1),它将转到下一个任务。
Create Procedure sp_test
AS
DECLARE @cmdline VARCHAR(500),
@ReturnCode INT
SELECT @cmdline = 'dir z:'
CREATE TABLE #temp (SomeCol VARCHAR(500))
INSERT #temp
EXEC @ReturnCode = master.dbo.xp_cmdshell @cmdline
IF @ReturnCode <> 0
BEGIN
SELECT SomeCol
FROM #temp
WHERE SomeCol IS NOT NULL
END
DROP TABLE #temp
RETURN @ReturnCode
GO
现在在我的 SSIS 执行 SQL 任务中,我输入并指定 ResultSet = Single Row
DECLARE @return_value int
EXEC @return_value = [dbo].[sp_test]
SELECT 'ReturnValue' = @return_value
这是我得到的错误,
[执行 SQL 任务] 错误:为变量“变量”赋值时出错:“无法在结果集中找到列 ReturnValue。”。
我需要那个 ReturnCode 值,以便我可以将它用于我的下一个任务。
【问题讨论】:
-
你为什么要
RETURN你的输入参数..?这是没有意义的。RETURN用于返回 SP 的成功;0表示成功,其他表示失败。如果要“返回”一个标量值,请使用OUTPUT参数。
标签: sql-server ssis