sql server—如果存储过程失败,则将输出变量值获取到执行sql任务中的ssis变量中

y3bcpkx1  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(555)

我正在尝试将输出消息从sp获取到executesql任务内的ssis变量中。如果存储过程执行成功,我可以获得消息,但如果存储过程出现错误,那么变量将保持为空,如下所示-



现在,如果sp execute成功完成,那么ssis变量将获得数据,但是如果sp execute出现错误,那么ssis变量将保持为空,execute sql任务组件将失败(这是所需的行为)。请引导。谢谢你!

s1ag04yj

s1ag04yj1#

如果执行sql任务失败,则不填充输出变量。
最好的选择是更改存储过程并将所有代码 Package 在try/catch块中。这样,您将能够始终填充变量,只要确保在收到内部错误时ssis包失败即可。
如果在存储过程中使用raiserror,ssis可用的唯一信息是包含raiserror语句的错误消息。您可以通过在ssis中创建onerror处理程序来检索此信息,然后它将在系统变量“system::errordescription”中可用

相关问题