我正试图从C#触发DTS包但到目前为止没有运气。 我有一个DTS包,我重写了一些参数FolderImportSource和FolderImportCompleted。 我的想法就像是
RunDtsPackage("DTSX NAME", new Dictionary<string, object> {
{ "FolderImportSource", @"C:\SourceFiles\ReadyToProcess\" },
{ "FolderImportCompleted", @"C:\SourceFiles\Processed\" },
{ "FolderExportTarget", @"C:\TargetFiles\Output\" }
RunDtsPackage应该在SSISDB数据库上执行以下存储过程:
我已经检查了this msdn link,在那里我找到了如何使用显示的“提示”调用这些过程的示例
有什么想法吗?
谢谢
答案 0 :(得分:0)
[假设SQL 2014]
如果您可以访问数据库本身,则可以通过T-SQL查询直接执行包,如下所示:
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'PackageName.dtsx', @execution_id=@execution_id OUTPUT, @folder_name=N'YourSSISFirstFolderName', @project_name=N'YourSSISProjectName', @use32bitruntime=False, @reference_id=Null
Select @execution_id
DECLARE @var0 sql_variant = N'SomeVariableValue'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=20, @parameter_name=N'SomePackageParameterName', @parameter_value=@var0
DECLARE @var1 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var1
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO
对于任何SSIS包,您都可以通过SQL Server Management Studio生成脚本,如上所示。
查看对象资源管理器时:
数据库 - &gt; Integration Services目录 - &gt; SSISDB - &gt; [GenericProjectName] - &gt;项目 - &gt; [SomeSSISProjectName] - &gt;包裹 - &gt; [包裹名字]。
从那里,右键单击该包并选择&#34;执行&#34;。填写&#34;参数&#34;下的必填字段。选项卡,然后查看顶部&#34;脚本&#34;并从下拉菜单中选择新查询编辑器窗口&#34;。这应该弹出特定于您的包和参数的T-SQL查询。
希望有所帮助或提出其他想法。