PDA

Показать полную графическую версию : [решено] Некорректное удаление "плана обслуживания" в ms SQL 2016


Cognos1
07-05-2018, 14:00
Доброго дня коллеги !
Сразу скажу , что в чайник в SQL, заранее прошу прощения поэтому.

В общем дело такое..
Я удалил каким то образом некорректно задание или план обсуживания , что он остался висеть и теперь я удалить не могу , пишет ошибку ( см скрин )

Я командой SELECT NAME, ID FROM MSDB..SYSMAINTPLAN_PLANS узнал какой ИД у этого задания ...

А дальше не знаю точно, что делать , можете подсказать ?

Хотя я так в целом понимаю , что проблема не критична , но все же хотелось бы удалить ..

Cognos1
07-05-2018, 14:01
152426

Вот лог
ЗАГОЛОВОК: Microsoft SQL Server Management Studio
------------------------------

Не удалось выполнить действие "Удалить" для следующего объекта: "Задание", "очистка лога.ВложенныйПлан_1". (Microsoft.SqlServer.Smo)

Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=13.0.16106.4+((SSMS_Rel_16_5).170125-2137)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Удалить+Job&LinkId=20476

------------------------------
ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:

При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

Конфликт инструкции DELETE с ограничением REFERENCE "FK_subplan_job_id". Конфликт произошел в базе данных "msdb", таблица "dbo.sysmaintplan_subplans", column 'job_id'.
Выполнение данной инструкции было прервано. (Microsoft SQL Server, ошибка: 547)

Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=13.00.4206&EvtSrc=MSSQLServer&EvtID=547&LinkId=20476

------------------------------
КНОПКИ:

ОК
------------------------------

Cognos1
08-05-2018, 15:36
В общем , задача оказалось простой , но поскольку я баран , ушло на это пол дня )

Вот решение)
В инете кстати толком нет инфы, видимо задача на столько изи , что ее никто не описывает.

1. Пишем этот запрос :select * from msdb.dbo.sysmaintplan_plans - он нам даст нужный ИД убитого задания.

2. далее пишем эти команды и все
delete from msdb.dbo.sysmaintplan_subplans where plan_id = ''
delete from msdb.dbo.sysmaintplan_plans where id = ''

vovav
06-09-2018, 13:44
Добрый день, я наверное ещё более чайник;) если спрошу, а где вы эти запросы писали в SQL
1. Пишем этот запрос :select * from msdb.dbo.sysmaintplan_plans - он нам даст нужный ИД убитого задания.

2. далее пишем эти команды и все
delete from msdb.dbo.sysmaintplan_subplans where plan_id = ''
delete from msdb.dbo.sysmaintplan_plans where id = ''




© OSzone.net 2001-2012