SSIS执行SQL任务包在BIDS中工作,但在SQL代理中部署时失败

时间:2011-08-01 04:52:15

标签: ssis

我有一个带有执行SQL任务的SSIS包。 这是代码

declare @vPersonSourceTgt int, @CntFlag int

set @vPersonSourceTgt =  (select count(*) from tbl_ONL_Person)

set @CntFlag = case when @vPersonSourceTgt = ? then  1 else  0 end

select @CntFlag as vTargetCntFlag

我确保参数映射中的输入参数名称为0。 在BIDS中一切正常,但是当我在SQL Agent中部署包时。它失败并出现以下错误。

Description: Executing the query "declare @vPersonSourceTgt int, @CntFlag int    set @vPersonSourceTgt =  (select count(*) from tbl_ONL_PALSAccountPerson)    set @CntFlag = case when @vPersonSourceTgt = ? then  1 else  0 end    select @CntFlag as vTargetCntFlag" failed with the following error: "Parameter name is unrecognized.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.  End Error  DTExec: The package execution returned DTSER_FAILURE (1).

任何帮助都将受到高度赞赏。 谢谢!

1 个答案:

答案 0 :(得分:3)

作为作业运行时程序包失败的最常见原因是权限:在BIDS中,程序包运行时具有您的帐户权限;在计划时,它以SQL代理权限运行。您是否使用Windows身份验证连接到数据库,例如?

另一个常见问题是工作站上的组件未安装在服务器上,例如:第三方OLE DB提供程序。但这似乎不是这种情况,因为错误通常更具体。

KB article提供有关如何解决和解决作为作业运行的程序包问题的一般建议。