每个SSIS包执行前和执行后是否有一种方法可以启动存储过程?

5
我正在寻找一种方式 - 无论是使用内置的SSIS功能还是自定义构建(第三方软件或内部编码) - 来“包装”每个执行的SSIS包含特定代码,例如在所有执行步骤之前和之后启动某些SQL过程。这些旨在记录流程步骤、处理错误、设置通知等。
关键思想是避免手动编辑和添加此代码到每个单独的SSIS包中 - 虽然可行,但如果以上设置发生任何变化,维护起来很麻烦。
你们的SSIS/SQL Server专家对此有什么建议将不胜感激。
EDIT: 或者,是否有一种方法可以轻松地重构现有部署的SSIS包,并快速轻松地一次性添加/修改该代码?

当您在DTS上启用将日志记录到SQL Server数据库时,可以修改由SSIS执行的SP。该SP被标记为系统SP,其名称为dbo.sp_ssis_addlogentry。详情请参考http://www.sqlcircuit.com/2013/08/how-to-enable-ssis-package-logging-for.html。 - EzLo
谢谢@EzLo,这听起来与我要找的非常相似。有两个问题:1)我需要手动为每个包启用日志记录吗,还是有一种方法可以为所有已部署的包设置参数以启用它?2)更改日志记录参数是否会覆盖我在此期间自己添加到'dbo.sp_ssis_addlogentry'的内容? - Alex
  1. 如果您使用此方法,则必须编辑所有DTS以启用日志记录并将它们直接指向同一个数据库连接。您可能能够使用一些黑魔法来大规模更改DTS(实际上是xml文件)并通过C#或任何其他编程语言添加日志记录步骤,但这并不容易,我不知道如何做,除非您有非常多的dts并且它们都使用相同的版本,否则我不建议尝试。
  2. 我认为SSIS只会在存储过程不存在时尝试创建它,但我会进行测试以确保。
- EzLo
1个回答

0

1. 我正在寻找一种方法 - 无论是使用内置的SSIS功能还是自定义构建(第三方软件或内部编码) - 来“包装”每个执行的SSIS捆绑包,例如在所有执行步骤之前和之后启动某些SQL过程。

请参考执行SQL任务

2. 这些旨在记录流程步骤、处理错误、设置通知等。

记录流程步骤 - 请参考SSIS日志记录

处理错误 - 请参考Integration Services (SSIS)事件处理程序

使用 OnError 事件处理程序捕获 SQL Server Integration Services 包错误

设置通知--请参考 SSIS 脚本任务开始使用 SSIS 脚本任务

3.或者,是否有一种简单的方法来轻松地重构现有部署的 SSIS 包并快速轻松地添加/修改该代码?

请参考 在 SQL Server 2012 中编辑已发布的 SSIS 包


很遗憾,你提供的所有链接都没有回答我在初始帖子中提出的问题。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接