Condividi tramite


sp_delete_jobsteplog (Transact-SQL)

Si applica a: SQL Server Istanza gestita di SQL di Azure

Rimuove tutti i log dei passaggi del processo di SQL Server Agent specificati con gli argomenti . Utilizzare questa stored procedure per gestire la tabella sysjobstepslogs nel msdb database.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_delete_jobsteplog
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @step_id = ] step_id ]
    [ , [ @step_name = ] N'step_name' ]
    [ , [ @older_than = ] older_than ]
    [ , [ @larger_than = ] larger_than ]
[ ; ]

Argomenti

[ @job_id = ] 'job_id'

Numero di identificazione del processo in cui è contenuto il log dei passaggi di processo da rimuovere. @job_id è uniqueidentifier, con un valore predefinito .NULL

È necessario specificare @job_id o @job_name , ma non è possibile specificare entrambi.

[ @job_name = ] N'job_name'

Il nome del processo. @job_name è sysname, con il valore predefinito NULL.

È necessario specificare @job_id o @job_name , ma non è possibile specificare entrambi.

[ @step_id = ] step_id

Numero di identificazione del passaggio del processo per cui si desidera eliminare il log dei passaggi di processo. @step_id è int, con il valore predefinito NULL. Se non è incluso, tutti i log dei passaggi del processo vengono eliminati a meno che non vengano specificati @older_than o @larger_than .

È possibile specificare @step_id o @step_name , ma non è possibile specificare entrambi.

[ @step_name = ] N'step_name'

Nome del passaggio del processo per cui è necessario eliminare il log dei passaggi di processo. @step_name è sysname, con un valore predefinito .NULL

È possibile specificare @step_id o @step_name , ma non è possibile specificare entrambi.

[ @older_than = ] older_than

Data e ora del log dei passaggi di processo meno recente che si desidera mantenere. @older_than è datetime, con un valore predefinito .NULL Verranno rimossi tutti i log dei passaggi di processo antecedenti questa data e ora.

È possibile specificare sia @older_than che @larger_than.

[ @larger_than = ] larger_than

Dimensione in byte del log dei passaggi di processo più grande che si desidera mantenere. @larger_than è int, con il valore predefinito .NULL Vengono rimossi tutti i log dei passaggi di processo la cui dimensione è maggiore rispetto a quella indicata.

È possibile specificare sia @older_than che @larger_than.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Nessuno.

Osservazioni:

sp_delete_jobsteplog si trova nel msdb database.

Se non vengono specificati argomenti tranne @job_id o @job_name , tutti i log dei passaggi del processo per il processo specificato vengono eliminati.

Autorizzazioni

Questa stored procedure è di proprietà del ruolo db_owner . È possibile concedere EXECUTE autorizzazioni per qualsiasi utente, ma queste autorizzazioni possono essere sottoposte a override durante un aggiornamento di SQL Server.

È necessario concedere ad altri utenti uno dei ruoli predefiniti del database di SQL Server Agent seguenti:msdb

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Per informazioni dettagliate sulle autorizzazioni di questi ruoli, vedere Ruoli di database predefiniti di SQL Server Agent.

Solo i membri di sysadmin possono eliminare un log dei passaggi del processo di proprietà di un altro utente.

Esempi

R. Rimuovere tutti i log dei passaggi del 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. Rimuovere il log dei passaggi del 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. Rimuovere tutti i log dei passaggi del processo in base all'età 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