Sdílet prostřednictvím


sp_stop_job (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Instruuje SQL Server Agent, aby zastavil spuštění úlohy.

Transact-SQL konvence syntaxe

Syntaxe

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

Arguments

[ @job_name = ] N'job_name'

Název práce je zastavit. @job_name je sysname s výchozím nastavením NULL.

[ @job_id = ] 'job_id'

Identifikační číslo práce k zastavení. @job_id je uniqueidentifier, s výchozím nastavením NULL.

[ @originating_server = ] N'originating_server'

Název původního serveru. Pokud je to specifikováno, všechny multiserverové úlohy jsou zastaveny. @originating_server je sysname s výchozím nastavením NULL. Tento parametr specifikujte pouze při volání sp_stop_job na cílovém serveru.

Funkce Multi Server Administration (MSX/TSX) není v Azure SQL Managed Instance podporována.

Poznámka:

Lze specifikovat pouze jeden z prvních tří parametrů.

[ @server_name = ] N'server_name'

Název konkrétního cílového serveru, na kterém se zastaví multiserverová práce. @server_name je sysname s výchozím nastavením NULL. Tento parametr specifikujte pouze při volání sp_stop_job na původním serveru pro multiserverovou úlohu.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Sada výsledků

Žádné.

Poznámky

sp_stop_job Posílá do databáze signál zastavení. Některé procesy lze zastavit okamžitě, jiné musí dosáhnout stabilního bodu (nebo vstupního bodu do cesty kódu), než se mohou zastavit. Některé dlouhotrvající Transact-SQL příkazy, BACKUPjako , RESTORE, a některé DBCC příkazy mohou trvat dlouho, než se dokončí. Když tyto příkazy běží, může chvíli trvat, než se úkol zruší. Zastavení práce způsobí, že se v historii práce zaznamená záznam "Práce zrušena".

Pokud úloha právě vykonává krok typu CmdExec nebo PowerShell, proces spouštěný (například MyProgram.exe) musí být předčasně ukončen. Předčasné ukončení může vést k nepředvídatelnému chování, například že soubory používané procesem jsou udržovány otevřené. Proto by měl být použit sp_stop_job pouze v extrémních případech, pokud úloha obsahuje kroky typu CmdExec nebo PowerShell.

Tato uložená procedura sdílí název s sp_stop_job podobným objektem pro službu Azure Elastic Jobs pro Azure SQL Database. Informace o verzi elastic jobs najdete v jobs.sp_stop_job (Azure Elastic Jobs).

Povolení

Na tomto postupu můžete udělit EXECUTE oprávnění, ale tato oprávnění mohou být během upgradu SQL Serveru přepsána.

Ostatní uživatelé musí mít v databázi msdb přiděleny některé z následujících pevných databázových rolí SQL Server Agent:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Podrobnosti o oprávněních těchto rolí naleznete v SQL Server Agent Fixed Database Roles.

Členové SQLAgentUserRole a SQLAgentReaderRole mohou zastavit pouze práce, které vlastní. Členové SQLAgentOperatorRole mohou zastavit všechny lokální úlohy, včetně těch, které vlastní jiní uživatelé. Členové správce systému mohou zastavit všechny lokální i multiserverové úkoly.

Examples

Následující příklad zastaví úkol s názvem Weekly Sales Data Backup.

USE msdb;
GO

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