Поделиться через


sp_stop_job (Transact-SQL)

Дает указание агенту SQL Server остановить выполнение текущего задания.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

sp_stop_job 
      [@job_name =] 'job_name'
    | [@job_id =] job_id 
    | [@originating_server =] 'master_server'
    | [@server_name =] 'target_server'

Аргументы

  • [ @job_name =] 'job_name'
    Имя останавливаемого задания. Аргумент job_name имеет тип sysname и значение по умолчанию NULL.

  • [ @job_id =] job_id
    Идентификационный номер останавливаемого задания. Аргумент job_id имеет тип uniqueidentifier и значение по умолчанию NULL.

  • [ @originating_server =] 'master_server'
    Имя главного сервера. Если указано, останавливаются все многосерверные задания. Аргумент master_server имеет тип nvarchar(128) и значение по умолчанию NULL. Указывайте этот аргумент только при вызове хранимой процедуры sp_stop_job на целевом сервере.

    Примечание

    Может быть задан только один из первых трех аргументов.

  • [ @server_name =] 'target_server'
    Имя конкретного целевого сервера, на котором следует остановить многосерверное задание. Аргумент target_server имеет тип nvarchar(128) и значение по умолчанию NULL. Указывайте этот аргумент только при вызове хранимой процедуры sp_stop_job для многосерверного задания.

Значения кода возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Нет

Замечания

Получив уведомление об остановке, агент SQL Server дождется, пока текущий шаг задания не завершится, прежде чем выполнить запрос на отмену. Для завершения некоторых длительных инструкций Transact-SQL, таких как BACKUP, RESTORE, и некоторых команд DBCC может потребоваться много времени. Когда такие инструкции выполняются, может потребоваться значительное время, прежде чем задание будет отменено. Остановка задания приведет к регистрации записи «Задание отменено» в журнале заданий.

Если задание в данный момент выполняет этап типа CmdExec или PowerShell, выполняемый процесс, например MyProgram.exe, принудительно завершается раньше времени. Преждевременное завершение может привести к непредсказуемому поведению, например файлы, используемые процессом, могут остаться открытыми. Следовательно, если задание содержит шаги типа CmdExec или PowerShell, хранимую процедуру sp_stop_job нужно использовать только в экстренных ситуациях.

Разрешения

По умолчанию эту хранимую процедуру могут выполнять члены предопределенной роли сервера sysadmin. Другим пользователям должна быть предоставлена одна из следующих предопределенных ролей базы данных агента SQL Server в базе данных msdb.

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Дополнительные сведения о разрешениях для этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.

Члены ролей SQLAgentUserRole и SQLAgentReaderRole могут останавливать задания, которыми владеют. Члены роли SQLAgentOperatorRole могут останавливать все локальные задания, включая те, которыми владеют другие пользователи. Члены роли sysadmin могут останавливать любые локальные и многосерверные задания.

Примеры

В следующем примере останавливается задание с именем Weekly Sales Data Backup.

USE msdb ;
GO

EXEC dbo.sp_stop_job
    N'Weekly Sales Data Backup' ;
GO

См. также

Справочник

sp_delete_job (Transact-SQL)

sp_help_job (Transact-SQL)

sp_start_job (Transact-SQL)

sp_update_job (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)