sp_delete_jobsteplog (Transact-SQL)
Rimuove tutti i log dei passaggi di processo di SQL Server Agent specificati con gli argomenti. Utilizzare questa stored procedure per gestire la tabella sysjobstepslogs del database msdb.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_delete_jobsteplog { [ @job_id = ] 'job_id' | [ @job_name = ] 'job_name' }
[ , [ @step_id = ] step_id | [ @step_name = ] 'step_name' ]
[ , [ @older_than = ] 'date' ]
[ , [ @larger_than = ] 'size_in_bytes' ]
Argomenti
[ @job_id =] 'job_id'
Numero di identificazione del processo in cui è contenuto il log dei passaggi di processo da rimuovere. job_id è di tipo int e il valore predefinito è NULL.[ @job_name =] 'job_name'
Nome del processo. job_name è di tipo sysname e il valore predefinito è NULL.[!NOTA]
È necessario specificare l'argomento job_id oppure l'argomento job_name ma non è possibile specificarli entrambi.
[ @step_id =] step_id
Numero di identificazione del passaggio del processo per cui si desidera eliminare il log dei passaggi di processo. Se omesso, verranno eliminati tutti i log dei passaggi di processo a meno che non venga specificato @older_than o @larger_than. step_id è di tipo int e il valore predefinito è NULL.[ @step_name =] 'step_name'
Nome del passaggio del processo per cui è necessario eliminare il log dei passaggi di processo. step_name è di tipo sysname e il valore predefinito è NULL.[!NOTA]
È necessario specificare l'argomento step_id oppure l'argomento step_name ma non è possibile specificarli entrambi.
[ @older_than =] 'date'
Data e ora del log dei passaggi di processo meno recente che si desidera mantenere. Verranno rimossi tutti i log dei passaggi di processo antecedenti questa data e ora. date è di tipo datetime e il valore predefinito è NULL. È possibile specificare sia @older_than che @larger_than.[ @larger_than =] 'size_in_bytes'
Dimensione in byte del log dei passaggi di processo più grande che si desidera mantenere. Vengono rimossi tutti i log dei passaggi di processo la cui dimensione è maggiore rispetto a quella indicata. È possibile specificare sia @larger_than sia @older_than.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Set di risultati
Nessuno
Osservazioni
sp_delete_jobsteplog è disponibile nel database msdb.
Se non vengono specificati altri argomenti oltre a @job_id o @job_name, vengono eliminati tutti i log dei passaggi di processo relativi al processo specificato.
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.
Solo i membri del ruolo sysadmin possono eliminare un log dei passaggi di processo di proprietà di un altro utente.
Esempi
A.Rimozione di tutti i log dei passaggi di processo da un processo
Nell'esempio seguente vengono rimossi tutti i log dei passaggi di processo del processo Weekly Sales Data Backup.
USE msdb ;
GO
EXEC dbo.sp_delete_jobsteplog
@job_name = N'Weekly Sales Data Backup';
GO
B.Rimozione del log dei passaggi di processo per un passaggio di processo specifico
Nell'esempio seguente viene rimosso il log relativo al passaggio 2 del processo Weekly Sales Data Backup.
USE msdb ;
GO
EXEC dbo.sp_delete_jobsteplog
@job_name = N'Weekly Sales Data Backup',
@step_id = 2;
GO
C.Rimozione di tutti i log dei passaggi di processo in base alla data di creazione e alle dimensioni
Nell'esempio seguente tutti i log dei passaggi di processo antecedenti le ore 12.00 del 25 ottobre 2005 e di dimensioni maggiori di 100 MB vengono rimossi dal processo Weekly Sales Data Backup.
USE msdb ;
GO
EXEC dbo.sp_delete_jobsteplog
@job_name = N'Weekly Sales Data Backup',
@older_than = '10/25/2005 12:00:00',
@larger_than = 104857600;
GO