使用 C# 在 Integration Services 目录中触发 DTS 包
Triggering a DTS package in the Integration Services catalogs using C#
我正在尝试从 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 数据库上执行以下存储过程:
- create_execution
- set_execution_parameter_value
- start_execution
我检查了 this msdn link 我在哪里找到了如何使用显示的“提示”调用这些过程的示例
有什么想法吗?
谢谢
[假设 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 生成脚本,就像上面的脚本一样。
查看对象资源管理器时:
数据库 -> 集成服务目录 -> SSISDB -> [GenericProjectName] -> 项目 -> [SomeSSISProjectName] -> 包 -> [PackageName]。
从那里,右键单击包并 select "Execute"。在 "Parameter" 选项卡下填写必填字段,然后从下拉列表 "New Query Editor Window" 中查看顶部 "Script" 和 select。这应该会弹出针对您的包和参数的 T-SQL 查询。
希望对您有所帮助,或提供其他想法。
我正在尝试从 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 数据库上执行以下存储过程:
- create_execution
- set_execution_parameter_value
- start_execution
我检查了 this msdn link 我在哪里找到了如何使用显示的“提示”调用这些过程的示例
有什么想法吗?
谢谢
[假设 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 生成脚本,就像上面的脚本一样。
查看对象资源管理器时:
数据库 -> 集成服务目录 -> SSISDB -> [GenericProjectName] -> 项目 -> [SomeSSISProjectName] -> 包 -> [PackageName]。
从那里,右键单击包并 select "Execute"。在 "Parameter" 选项卡下填写必填字段,然后从下拉列表 "New Query Editor Window" 中查看顶部 "Script" 和 select。这应该会弹出针对您的包和参数的 T-SQL 查询。
希望对您有所帮助,或提供其他想法。