DTExec运行SSIS包日志设置无效问题解决

Posted 詩和遠方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DTExec运行SSIS包日志设置无效问题解决相关的知识,希望对你有一定的参考价值。

问题描述

Package属性中开启了Logging功能,设置将Log写到SQL Server,在SSDT中运行时,一切正常,日志有写到所设置数据库的sysssislog表中,但通过命令行用dtExec调用此包时却无法按预期写日志,并有警告To run a SSIS package outside of SQL Server Data Tools you must install SSIS log provider for SQL Server of Integration Services or higher.

当时的软件环境:SSDT 2015,SQL Server 2016(之前先装了2012,后又卸载装2016),SSIS包的输出版本设置为2012。

解决方案

经观察发现随手敲的dtExec默认版本是11.0,代表2012版本,切换到2016版本的dtExec目录后,执行相同命令,日志已按预期写到数据库。

所以结论是:执行命令的dtExec.exe版本,一定要和所在机器上SQL Server实例的版本一致,才能保证执行完全正常,否则可能会出现意想不到的Bug。

另外,dtExec的版本可以高于SSIS包对应的输出版本,但不能低于它,否则会报The version number in the package is not valid. The version number cannot be greater than current version number.

最后附SQL Server版本号与兼容性级别对应关系:

SQL Server兼容性级别与版本号

80 = SQL Server 2000 = 8.00.xxxx
90 = SQL Server 2005 = 9.00.xxxx
100 = SQL Server 2008 = 10.00.xxxx
105 = SQL Server 2008 R2 = 10.50.xxxx
110 = SQL Server 2012 = 11.00.xxxx
120 = SQL Server 2014 = 12.00.xxxx
130 = SQL Server 2016 = 13.00.xxxx
140 = SQL Server 2017 = 14.00.xxxx
150 = SQL Server 2019 = 15.00.xxxx

以上是关于DTExec运行SSIS包日志设置无效问题解决的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Excel VBA 运行 SSIS 包

SSIS 包 - 由于错误 0xC0014062 无法加载包

从文件系统执行 SSIS 包

如何使用配置命令行执行 SSIS 包

SQL Server 维护计划如何与 Jobs 和 DTExec 相关联?

从 SSIS 运行 SQL 代理作业