我正在尝试将输出消息从sp获取到executesql任务内的ssis变量中。如果存储过程执行成功,我可以获得消息,但如果存储过程出现错误,那么变量将保持为空,如下所示-现在,如果sp execute成功完成,那么ssis变量将获得数据,但是如果sp execute出现错误,那么ssis变量将保持为空,execute sql任务组件将失败(这是所需的行为)。请引导。谢谢你!
s1ag04yj1#
如果执行sql任务失败,则不填充输出变量。最好的选择是更改存储过程并将所有代码 Package 在try/catch块中。这样,您将能够始终填充变量,只要确保在收到内部错误时ssis包失败即可。如果在存储过程中使用raiserror,ssis可用的唯一信息是包含raiserror语句的错误消息。您可以通过在ssis中创建onerror处理程序来检索此信息,然后它将在系统变量“system::errordescription”中可用
1条答案
按热度按时间s1ag04yj1#
如果执行sql任务失败,则不填充输出变量。
最好的选择是更改存储过程并将所有代码 Package 在try/catch块中。这样,您将能够始终填充变量,只要确保在收到内部错误时ssis包失败即可。
如果在存储过程中使用raiserror,ssis可用的唯一信息是包含raiserror语句的错误消息。您可以通过在ssis中创建onerror处理程序来检索此信息,然后它将在系统变量“system::errordescription”中可用