У меня есть пакет SSIS, который я сохранил в разделе «Планы обслуживания» на SQL Server 2005. Хотя я могу выбирать пакеты SSIS, я не уверен, как их удалить.





Похоже, вы пытаетесь удалить пакет из ядра СУБД -> Управление -> Планы обслуживания. Попробуйте подключиться к «Службам Integration Services» вместо ядра базы данных и найдите пакет, который вы хотите удалить, в разделе «Выполняемые пакеты» или «Сохраненные пакеты».
Оттуда вы сможете щелкнуть правой кнопкой мыши и удалить.
В зависимости от того, какую версию SQL Server вы используете, существует системная таблица, содержащая пакеты. В моей версии 2005 года таблица называется msdb.dbo.sysdtspackages90. Вы также можете найти такие таблицы, как msdb.dbo.sysdtspackages или msdb.dbo.sysssispackages. Чтобы удалить пакет, просто удалите его из этой таблицы.
Если вы ищете сценарий для удаления пакетов с SQL Server, вы можете сделать следующее:
Следующий код удалит пакет, развернутый как «\ Maintenance Plan \ DatabaseBackup-Full-All» с сервера с именем «MYSQLSERVER01».
DTUTIL /SQL "\Maintenance Plans\DatabaseBackup-Full-All" /DELETE /SourceServer MYSQLSERVER01 >> rollback.log
Следующий код развернет пакет, расположенный в текущем каталоге файловой системы с именем «DatabaseBackup-Full-All.dtsx», на сервере с именем «MYSQLSERVER01» как «\ Maintenance Plan \ DatabaseBackup-Full-All»
DTUTIL /FILE "DatabaseBackup-Full-All.dtsx" /COPY SQL;"\Maintenance Plans\DatabaseBackup-Full-All" /QUIET /DestServer MYSQLSERVER01 >> release.log
Эти образцы кода запускаются из командной строки. Я также включил >> release.log и >> rollback.log, чтобы вы могли сохранить журнал выполнения в файл.
Не забудьте записать cd в любой каталог, в котором находится ваш файл пакета, чтобы запустить сценарий как есть, или обновите приведенный выше код, чтобы он имел полный (локальный или unc) путь к файлу вашего пакета.
+1 Мне нужно было удалить более 200 пакетов, и это та команда, которая мне нужна. Добавление сценария, который я использовал для создания вашей предложенной команды.
Большое спасибо, это было именно то, что мне было нужно, так как я не мог подключиться к «Службам интеграции».
Решение Джона ДаКосты сработало для меня. Я написал следующий запрос для вывода команд удаления и вставил результаты в окно командной оболочки:
SELECT CONCAT('DTUTIL /SQL "\', f.foldername, '\', name, '" /DELETE /SourceServer MyServerName')
FROM msdb.dbo.sysssispackages s
JOIN msdb.dbo.sysssispackagefolders f
on s.folderid = f.folderid
WHERE ownersid <> 0x01
Использование DTUTIL из командной строки также работает для немного иной настройки с SQL Server v.12 и невозможности подключения к службам интеграции из SQL Server Management Studio.