sp_stop_job (Transact-SQL)
Richiede a SQL Server Agent di arrestare l'esecuzione di un processo.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_stop_job
[@job_name =] 'job_name'
| [@job_id =] job_id
| [@originating_server =] 'master_server'
| [@server_name =] 'target_server'
Argomenti
[ @job_name =] 'job_name'
Nome del processo da arrestare. job_name è di tipo sysname e il valore predefinito è NULL.[ @job_id =] job_id
Numero di identificazione del processo da arrestare. job_id è di tipo uniqueidentifier e il valore predefinito è NULL.[ @originating_server =] 'master_server'
Nome del server master. Se specificato, vengono arrestati tutti i processi multiserver. master_server è di tipo nvarchar(128) e il valore predefinito è NULL. Specificare questo parametro solo quando si chiama sp_stop_job in un server di destinazione.[!NOTA]
È possibile specificare solo uno dei primi tre parametri.
[ @server_name =] 'target_server'
Nome del server di destinazione specifico in cui arrestare un processo multiserver. target_server è di tipo nvarchar(128) e il valore predefinito è NULL. Specificare questo parametro solo quando si chiama sp_stop_job in un server master per un processo multiserver.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Set di risultati
Nessuno
Osservazioni
Quando SQL Server Agent riceve la notifica dell'arresto, attende che il passaggio del processo in esecuzione attualmente termini prima di elaborare l'annullamento della richiesta. Alcune istruzioni Transact-SQL con esecuzione prolungata, ad esempio BACKUP, RESTORE e alcuni comandi DBCC, possono richiedere un'elevata quantità di tempo per essere completate. Quando tali istruzioni sono in esecuzione, potrebbe trascorrere del tempo prima che il processo venga annullato. L'arresto di un processo comporta la registrazione di una voce relativa all'annullamento nella cronologia processo.
Se in un processo è in esecuzione un passaggio di tipo CmdExec o PowerShell, viene impostata l'interruzione anticipata del processo eseguito, ad esempio MioProgramma.exe. Tale interruzione può causare comportamenti imprevisti, ad esempio i file utilizzati dal processo potrebbero restare aperti. Di conseguenza, se il processo contiene passaggi di tipo CmdExec o PowerShell, sp_stop_job dovrebbe essere utilizzato solo in circostanze particolari.
Autorizzazioni
Per impostazione predefinita, questa stored procedure può essere eseguita dai membri del ruolo predefinito del server sysadmin. Gli altri utenti devono appartenere a uno dei seguenti ruoli predefiniti del database di SQL Server Agent nel database msdb:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Per informazioni sulle autorizzazioni di questi ruoli, vedere Ruoli di database predefiniti di SQL Server Agent.
I membri di SQLAgentUserRole e SQLAgentReaderRole possono arrestare solo i processi di cui sono proprietari. I membri di SQLAgentOperatorRole possono arrestare tutti i processi locali, inclusi quelli di proprietà di altri utenti. I membri di sysadmin possono arrestare tutti i processi locali e multiserver.
Esempi
Nell'esempio seguente viene arrestato un processo denominato Weekly Sales Data Backup.
USE msdb ;
GO
EXEC dbo.sp_stop_job
N'Weekly Sales Data Backup' ;
GO