SSIS自定义日志记录最佳实践

SSIS自定义日志记录最佳实践,ssis,Ssis,我想知道实现executesql任务日志记录的最佳方法是什么。例如,对于我的每个执行SQL任务组件,我希望记录以下内容: 1) SQL任务的描述。 2) SQL任务中使用的SQL语句。 3) SQL语句的结果。SQL语句正在返回标量值。 4) SSIS正在创建的作业运行id,即SSIS创建的操作id 目前,这是我如何实现它,这是相当重复的 1) 对于每个执行SQL任务(让我们称之为mySQLTask),我在mySQLTask的Post-Execute事件中创建另一个名为“Log-Result”的

我想知道实现executesql任务日志记录的最佳方法是什么。例如,对于我的每个执行SQL任务组件,我希望记录以下内容:

1) SQL任务的描述。 2) SQL任务中使用的SQL语句。 3) SQL语句的结果。SQL语句正在返回标量值。 4) SSIS正在创建的作业运行id,即SSIS创建的操作id

目前,这是我如何实现它,这是相当重复的

1) 对于每个执行SQL任务(让我们称之为mySQLTask),我在mySQLTask的Post-Execute事件中创建另一个名为“Log-Result”的执行SQL任务。 2) 我创建了一个名为Log_Result的存储过程,它是从“Log Result”executesql任务执行的。 3) 然后从mySQLTask复制SQL语句,并将其作为硬编码参数粘贴到存储过程参数中。例如,在SQL语句属性的“日志结果”SQL任务中。。。“执行日志_结果?”,,,“从表中选择计数(*),”

有没有一种方法可以从mySQLTask动态检索SQL语句?有没有更好的方法

我还探索了日志功能中的executesqlecutionquery选项的内置日志记录,它提供了执行的SQL语句,但我也希望跟踪结果


谢谢。

我高度推荐这本书以及其中包含的登录框架:

Microsoft SQL Server 2008集成服务:问题、设计、解决方案

如果我正确理解了你的问题,我会说它正是你想要的

如果我正确理解了您的问题,我会说,如果您从具有SQL Server配置类型的包配置中配置Execute SQL Task SQLStatement属性,则可以使用它来执行您描述的操作

这将允许您将SQL语句保存在SQL server中的一个表中,您可以查询并连接到包含每个包任务日志的其他表

这是非常直接的设置和相当强大。作者做了一个很好的工作,带你一步一步地完成这项工作。应该需要你大约一天的时间来启动和运行它

记录执行SQL任务的标量结果将是对SSIS PDS框架的一个增强。但我不太担心这一点:它应该很好地适合现成的PackageAsklog表。我在下面提供了PackageAsklog脚本供您参考

创建表[adm].[PackageTaskLog](
[PackageAsklogid][int]标识(1,1)不为空,
[PackageLogID][int]不为空,
[SourceName][varchar](255)不为空,
[SourceID][uniqueidentifier]不为空,
[StartDateTime][datetime]不为空,
[EndDateTime][datetime]空,
约束[PK_PackageAsklog]主键群集
(
[PackageAskLogid]ASC
)