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


sp_stop_job (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_stop_job
    [ [ @job_name = ] N'job_name' ]
    [ , [ @job_id = ] 'job_id' ]
    [ , [ @originating_server = ] N'originating_server' ]
    [ , [ @server_name = ] N'server_name' ]
[ ; ]

Аргументы

[ @job_name = ] N'job_name'

Имя останавливаемого задания. @job_name — sysname с значением по умолчаниюNULL.

[ @job_id = ] 'job_id'

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

[ @originating_server = ] N'originating_server'

Имя исходного сервера. Если указано, останавливаются все многосерверные задания. @originating_server — sysname с значением по умолчаниюNULL. Укажите этот параметр только при вызове sp_stop_job на целевом сервере.

Функция администрирования с несколькими серверами (MSX/TSX) не поддерживается в Управляемый экземпляр SQL Azure.

Примечание.

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

[ @server_name = ] N'server_name'

Имя конкретного целевого сервера, на котором следует остановить многосерверное задание. @server_name — sysname с значением по умолчаниюNULL. Укажите этот параметр только при вызове sp_stop_job на исходном сервере для многосерверного задания.

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

0 (успешно) или 1 (сбой).

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

Нет.

Замечания

sp_stop_job отправляет сигнал остановки в базу данных. Некоторые процессы могут быть остановлены немедленно, и некоторые должны достичь стабильной точки (или точки входа к пути кода), прежде чем они смогут остановиться. Некоторые длительные инструкции Transact-SQL, такие как BACKUP, RESTOREи некоторые DBCC команды могут занять много времени. При выполнении этих команд может потребоваться некоторое время до отмены задания. Остановка задания приведет к регистрации записи «Задание отменено» в журнале заданий.

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

Эта хранимая процедура использует имя аналогичного sp_stop_job объекта для службы заданий Elastic Azure для База данных SQL Azure. Сведения о версии эластичных заданий см. в разделе jobs.sp_stop_job (задания эластичных баз данных Azure).

Разрешения

Эта хранимая процедура принадлежит роли db_owner . Вы можете предоставить EXECUTE разрешения для любого пользователя, но эти разрешения могут быть переопределены во время обновления SQL Server.

Другим пользователям необходимо предоставить одну из следующих агент 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