Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Error handling 有没有办法快速查看所有现有SSIS包事件处理程序?_Error Handling_Ssis - Fatal编程技术网

Error handling 有没有办法快速查看所有现有SSIS包事件处理程序?

Error handling 有没有办法快速查看所有现有SSIS包事件处理程序?,error-handling,ssis,Error Handling,Ssis,SSIS事件处理程序非常有用。可以在包本身的级别添加事件处理程序,也可以为包中的任何可执行文件添加事件处理程序。这与Propagate属性一起,对于允许某些操作以自己的方式处理错误非常有用。例如,循环可以通过记录“这一行的键[whatever]有问题”来对错误作出反应,继续处理其余的行,而不触发包的错误处理程序,该错误处理程序被保存用于更致命的一般错误(例如,服务器停机) 事件处理程序的位置数量也是一个诅咒。在VisualStudio中,事件处理程序选项卡是您可以查看、添加或更改事件处理程序的位

SSIS事件处理程序非常有用。可以在包本身的级别添加事件处理程序,也可以为包中的任何可执行文件添加事件处理程序。这与Propagate属性一起,对于允许某些操作以自己的方式处理错误非常有用。例如,循环可以通过记录“这一行的键[whatever]有问题”来对错误作出反应,继续处理其余的行,而不触发包的错误处理程序,该错误处理程序被保存用于更致命的一般错误(例如,服务器停机)

事件处理程序的位置数量也是一个诅咒。在VisualStudio中,事件处理程序选项卡是您可以查看、添加或更改事件处理程序的位置。如果我想向TaskExecuteSomeSQL或sequence容器DoSomeThings添加事件处理程序,或者为这些我已经知道存在的可执行文件找到事件处理程序,那就太好了

但它不适合快速找出包中哪些可执行文件实际上有任何事件处理程序。要做到这一点,我必须在可执行文件树中单击每个可执行文件,并查看每个可执行文件在事件处理程序下是否有任何内容

另一种观点会让这更容易。要么:

  • 以非树方式显示所有现有事件处理程序,就像列表一样。Package.OnError、Package.OnTaskFailed、(序列)DoSomeStuff.OnPostExecute等
  • 或者,允许对树视图进行筛选,以仅显示具有任何事件处理程序的可执行文件

  • 我是否遗漏了一些东西,是否已经有了一个很好的方法来了解这一点?

    包资源管理器正是您要寻找的。这是非运行包的最后一个选项卡

    每个级别都有“可执行文件”和“事件处理程序”部分。当您展开其中一个时,您将看到列出的内容

    我的示例是一个Foreach循环,其中包含一个数据流任务。数据流有一个带有序列容器的OnError事件处理程序和一个带有序列容器的OnPostExecute,其中包含一个脚本任务。幸运的是,您无法在事件处理程序上添加事件处理程序(您可能已经能够在早期版本中添加)


    否则,我认为您正在考虑编写自定义代码来对包进行爬网。

    谢谢。这稍微容易一些,因为它位于主窗格中,而不是下拉列表中。仍然受到“树”问题的困扰——很好地澄清了结构,但不能很快看到所有现有的处理程序。我将不得不接受它,直到有一天我可以摆弄一些自定义代码(并首先克服我对XML的过敏…)