0

我正在使用给定的命令行在 sql server 的 sp 中执行 ssis 包。

SET @dtsExecCmd = @DTSEXECCMDPATH + ltrim(rtrim(@ssisPkgFilePath)) + '" /CONFIGFILE "' + ltrim(rtrim(@ssisCommonConfigPath)) + '"'

EXEC @result = master..xp_cmdshell @dtsExecCmd  

在哪里,

@DTSEXECCMDPATH = 'G:\"Program Files (x86)"\"Microsoft SQL Server"\110\DTS\Binn\dtexec /F "'


@ssisPkgFilePath = '\\dtsx package path\package.dtsx'

@ssisCommonConfigPath =
'\\CommonConfigurationpath\Configuration.dtsConfig'

现在我想通过从表中传递配置(前面存在)来执行相同的包,如果包含表中的配置,Configuration.dtsConfig我该如何编辑这个命令行。@config

4

1 回答 1

1

我假设您不会升级到这些包的项目部署并坚持包部署。

没有DTEXEC命令行开关可让您定义要从中加载配置的 SQL Server 表。

从 SQL Server 表中使用包配置的最简单方法是在 SSDT 中打开包,转到 SSIS/包配置并进行设置。然后你根本不需要在DTEXEC命令行上传递任何东西。

https://docs.microsoft.com/en-us/sql/integration-services/package-configurations?view=sql-server-2014#sql-server

如果您不想更改包并且坚持要通过它,DTEXEC那么我想您可以编写一个包装器,将配置数据从表中拉出,并使用开关逐个应用这些配置/SET

但我真的鼓励并建议您将这些包升级到项目部署模型。不要用这种旧方法浪费时间。你只是引入了技术债务。

您还应该知道这xp_cmdshell通常被认为是一个安全问题。

于 2018-11-21T12:10:40.040 回答