Если вы знаете SPID процесса для пакета DTS, вы можете выполнить команду KILL для SPID, и это остановит выполнение пакета DTS.Один из возможных способов определения SPID - найти SPID в таблице master.dbo.sysprocesses по некоторой идентифицирующей части информации, а затем выполнить команду KILL для SPID.Вот набор кода, который я протестировал, установив в свойствах соединения -> Дополнительно -> Имя приложения Я хочу убить этот идентификатор .
DECLARE @TEST INT;
SET @TEST =
(SELECT MAX (SPID)
FROM master.dbo.sysprocesses
WHERE имя_программы IN («Я хочу убить этот SPID»));
ЕСЛИ @TEST НЕ НУЛЬ
НАЧАТЬ
ОБЪЯВИТЬ @KILL_COMMAND NVARCHAR (100);
SET @KILL_COMMAND = 'KILL' + CONVERT (NVARCHAR(100), @TEST);
EXEC sp_executeSQL @KILL_COMMAND;
END
Недостатком вышеупомянутого подхода является то, что он работает только для пакетов уничтожения, которые имеют подключения к базе данных,Если вы используете пакет DTS, который не подключается к хост-серверу, SPID, подлежащий уничтожению, не будет.Если есть несколько SPID, это также не убьет их всех.Возможно, вам придется изменить код, чтобы создать список убиваемых SPID.Тогда есть тот факт, что вы должны установить имя приложения.Вы можете установить уникальные значения для каждого пакета DTS, чтобы случайно не уничтожить неправильный пакет.По умолчанию установлено значение DTS Designer , которое было бы плохо убить, если на сервере запущено несколько пакетов.