4

当指向远程 SSIS 包时,有没有办法让 dtexec 工具在包完成运行之前不退出?

我的包成功运行,但 dtexec 报告的运行时间比 SQL Server 上的“所有执行”报告中报告的实际持续时间短得多。它打印消息:

To view the details for the execution, right-click on the Integration Services Catalog, and open the [All Executions] report

我的目标是在命令行上启动 dtexec,然后运行依赖于包完成的其他代码。理想情况下,我希望 dtexec 在包完成运行之前不退出。

这可能吗?

4

1 回答 1

4

您正在寻找SYNCHRONIZED参数

为了让我的链接只回答一个链接和代码只回答,这里是 Phil 的代码,用于使用 TSQL

DECLARE @execution_id BIGINT = 0;

-- Create a package execution
EXEC [SSISDB].[catalog].[create_execution] 
        @package_name=N'Package.dtsx', 
        @execution_id=@execution_id OUTPUT, 
        @folder_name=N'PhilsTest', 
        @project_name=N'Demo', 
        @use32bitruntime=False;

EXEC [SSISDB].[catalog].[set_execution_parameter_value] 
        @execution_id,  
        @object_type=50, 
        @parameter_name=N'SYNCHRONIZED', 
        @parameter_value=1; -- true


-- Start the package
EXEC [SSISDB].[catalog].[start_execution] 
        @execution_id;

要从dtexec获得相同的行为,您可以指定参数,例如

DTExec 
/ISSERVER "\SSISDB\folderB\Integration Services Project17\Package.dtsx" 
/SERVER "." /Envreference 2 
/Par "$Project::ProjectParameter(Int32)";1 /Par "Parameter(Int32)";21 
/Par "CM.sqlcldb2.SSIS_repro.InitialCatalog";ssisdb 
/Par "$ServerOption::SYNCHRONIZED(Boolean)";True
于 2013-07-18T22:07:39.140 回答