从c#应用程序中取消SSIS包的执行



我有一个。net WinForms应用程序,它使用Microsoft.SqlServer.Dts.Runtime>DtsContainer。依次执行(连接,变量,IDTSEvents, idtlogging,对象)方法

是否有办法取消一个包的执行?

可以通过调用SSIS内置存储过程实现。

需要知道SSIS包execution_id

您可以从您的应用程序中调用该存储过程。

查看:

USE SSISDB;
GO
DECLARE @execution_id INT = (
SELECT TOP(1) execution_id
FROM CATALOG.executions as x
WHERE folder_name = 'folder_name'
AND project_name = 'project_name'
AND package_name = 'package_name.dtsx'
AND end_time IS NULL
AND status IN (2, 5) -- 'Running', 'Pending' and 'Active' executions
ORDER BY execution_id DESC);

EXEC [catalog].[stop_operation] @execution_id;

最新更新