2013-07-18 78 views
4

当指向远程SSIS包时,有没有办法让dtexec工具不能退出,直到包完成运行?使用dtexec执行远程ssis包

我的软件包成功运行,但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

您正在寻找SYNCHRONIZED参数

为了让我的链接只能回答到链接和代码只能回答,这里是菲尔的代码做withing TSQL

DECLARE @execution_id BIGINT = 0; 

-- Create a package execution 
EXEC [SSISDB].[catalog].[create_execution] 
     @package_name=N'Package.dtsx', 
     @[email protected]_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 
+0

这样做的伎俩。谢谢! – TGH