MSSQL Error 14243: The job does not exist — решение ошибки SQL Agent
- Регламентные скрипты или триггеры возвращают ошибку
Msg 14243, Level 16, State 1: The job '%ls' does not exist. - Планы обслуживания (Maintenance Plans) для баз 1С не запускаются по расписанию.
- При вызове
sp_start_jobилиsp_stop_jobпроцесс завершается аварийно. - Рассинхронизация между идентификаторами
job_idвmsdb.dbo.sysjobsи вызовами внешних систем мониторинга.
1. Проверка существования задания по имени и job_id
USE msdb;
GO
SELECT job_id, name, enabled, date_created
FROM msdb.dbo.sysjobs
WHERE name LIKE '%1C%Backup%' OR job_id = 'A7D2A782-5060-4C96-BEE8-55418EAE364C';2. Поиск скрытых символов и проблем с кодировкой в имени
SELECT name, CAST(name AS VARBINARY(100)) AS NameBinary
FROM msdb.dbo.sysjobs;3. Корректный вызов задания через job_id вместо строкового имени
DECLARE @JobID BINARY(16);
SELECT @JobID = job_id FROM msdb.dbo.sysjobs WHERE name = N'1C_Daily_Maintenance';
IF @JobID IS NOT NULL
EXEC msdb.dbo.sp_start_job @job_id = @JobID;
ELSE
PRINT 'Error: Job not found in msdb.dbo.sysjobs';4. Восстановление поврежденного задания Плана обслуживания
Если задание пропало после сбоя msdb или миграции:
-- Пересоздание системных представлений и проверка целостности msdb
DBCC CHECKDB ('msdb'); Частые вопросы (FAQ)
Почему имя задания отображается в SSMS, но T-SQL возвращает ошибку 14243?
Это часто происходит из-за непечатаемых символов (пробелы в конце строки, смешение кириллических и латинских символов 'C' / 'С' в имени '1C') или вызова задания под пользователем без прав в msdb.
Какие роли в msdb необходимы для запуска заданий?
Пользователь должен состоять в роли SQLAgentUserRole, SQLAgentReaderRole или SQLAgentOperatorRole в системной базе данных msdb.
Что делать, если Maintenance Plan есть в Object Explorer, но связанные задания отсутствуют?
Откройте план обслуживания в конструкторе SSMS, внесите любое незначительное изменение (например, комментарий) и сохраните его. SSMS автоматически перегенерирует недостающие задания в sysjobs.
Может ли ошибка 14243 быть вызвана регистрозависимой коллацией (CS)?
Да, если база msdb или весь инстанс установлены с параметром Case-Sensitive (например, Cyrillic_General_CS_AS), имена заданий должны передаваться в строго точном регистре.