Atualmente, estou fazendo a transição de um servidor de uma empresa para outra.
Eles querem manter o SQL Server instalado no servidor, então estamos limpando todos os bancos de dados, planos de manutenção e trabalhos.
Estou tentando excluir vários trabalhos do SQL Server Agent, mas, embora estejam desativados, ainda estão no modo "IDLE", portanto, ocorre o seguinte erro ao tentar excluí-los:
A queda falhou para o trabalho
job_name.Subplan_1
. (Microsoft.SqlServer.Smo
)Ocorreu uma exceção durante a execução de uma instrução ou lote Transact-SQL. (
Microsoft.SqlServer.ConnectionInfo
)A
DELETE
instrução entrou em conflito com aREFERENCE
restriçãoFK_subplan_job_id
. O conflito ocorreu no banco de dados "msdb", tabeladbo.sysmaintplan_subplans
, colunajob_id
.A instrução foi encerrada. (Microsoft SQL Server, erro: 547)
Como posso remover o status IDLE do trabalho para que a exclusão ocorra?
Você tem planos de manutenção. Tente seguir estes passos:
Encontre o nome e o ID do plano de manutenção que você deseja excluir. Anote o id daquele que você deseja excluir.
--Coloque o ID do plano de manutenção que deseja excluir na consulta abaixo para excluir a entrada da tabela de log:
Coloque o ID do plano de manutenção que deseja excluir na consulta abaixo e exclua a entrada da tabela de subplanos:
Coloque o ID do plano de manutenção que deseja excluir na consulta abaixo para excluir a entrada da tabela de planos:
Agora você pode excluir os trabalhos do Management Studio.
O problema parece ser que você tem um plano de manutenção que criou esses trabalhos. Como tal, você não poderá excluí-los simplesmente excluindo o trabalho.
O que você precisa fazer é identificar qual plano de manutenção está associado aos trabalhos e, em seguida, excluir todo o plano de manutenção. Isso deve remover os trabalhos ou permitir que você os faça.
A consulta a seguir deve ajudá-lo a identificar o plano de manutenção associado.