从 xp_cmdshell 中使用 dtexec 运行SSIS包
从 xp_cmdshell 中使用 dtexec
可以从 xp_cmdshell 提示符下运行 dtexec。以下示例显示如何运行名为 UpsertData.dtsx 的包并忽略返回代码:
EXEC xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'
以下示例显示如何运行相同的包并捕获返回代码:
DECLARE @returncode int
EXEC @returncode = xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'
若要使用 Windows 身份验证执行保存到 SQL Server 的 SSIS 包,可使用以下代码:
dtexec /sq pkgOne /ser productionServer
若要执行保存到 SSIS 包存储区的“文件系统”文件夹中的 SSIS 包,请使用以下代码:
dtexec /dts "\File System\MyPackage"
若要验证使用 Windows 身份验证并保存在 SQL Server 中的包但不执行该包,可使用以下代码:
dtexec /sq pkgOne /ser productionServer /va
若要执行保存在文件系统中的 SSIS 包,可使用以下代码:
dtexec /f "c:\pkgOne.dtsx"
若要执行保存在文件系统中的 SSIS 包并指定日志选项,可使用以下代码:
dtexec /f "c:\pkgOne.dtsx" /l "DTS.LogProviderTextFile;c:\log.txt"
若要执行使用 Windows 身份验证并保存至 SQL Server 的默认本地实例的包,并在执行前查看其版本,可使用以下代码:
dtexec /sq pkgOne /verifyv {c200e360-38c5-11c5-11ce-ae62-08002b2b79ef}
若要执行保存在文件系统中并在外部配置的 SSIS 包,可使用以下代码:
dtexec /f "c:\pkgOne.dtsx" /conf "c:\pkgOneConfig.cfg"
注意:
如果路径或文件名包含空格,则 /SQL、/DTS 或 /FILE 选项的 package_path 或 filespec 参数必须用引号引起来。如果没有使用引号将参数引起来,则该参数不能包含空格。