sp_delete_jobsteplog (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Tar bort alla SQL Server Agent-jobbstegsloggar som är specificerade med argumenten. Använd denna lagrade produr för att underhålla tabellen sysjobstepslogs i databasen msdb .

Transact-SQL syntaxkonventioner

Syntax

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 ]
[ ; ]

Arguments

[ @job_id = ] 'job_id'

Jobbets identifieringsnummer för jobbet som innehåller jobbstegloggen som ska tas bort. @job_id är unik identifierare, med standardvärdet .NULL

Antingen @job_id eller @job_name måste specificeras, men båda kan inte specificeras.

[ @job_name = ] N'job_name'

Namnet på tjänsten. @job_name är sysname, med standardvärdet .NULL

Antingen @job_id eller @job_name måste specificeras, men båda kan inte specificeras.

[ @step_id = ] step_id

Identifieringsnumret för steget i jobbet där jobbstegloggen ska raderas. @step_id är int, med standardvärdet .NULL Om de inte inkluderas raderas alla jobbstegloggar i jobbet om inte @older_than eller @larger_than anges.

Antingen @step_id eller @step_name kan specificeras, men båda kan inte specificeras.

[ @step_name = ] N'step_name'

Namnet på steget i jobbet där jobbstegloggen ska raderas. @step_name är sysname, med standardvärdet .NULL

Antingen @step_id eller @step_name kan specificeras, men båda kan inte specificeras.

[ @older_than = ] older_than

Datum och tid för den äldsta jobbstegsloggen du vill föra. @older_than är datetime, med en standard på NULL. Alla jobbstegsloggar som är äldre än detta datum och tid tas bort.

Både @older_than och @larger_than kan specificeras.

[ @larger_than = ] larger_than

Storleken i byte för den största jobbstegsloggen du vill föra. @larger_than är int, med standardvärdet .NULL Alla jobbstegloggar som är större än denna storlek tas bort.

Både @older_than och @larger_than kan specificeras.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Resultatuppsättning

Ingen.

Anmärkningar

sp_delete_jobsteplog finns i databasen msdb .

Om inga argument förutom @job_id eller @job_name specificeras, raderas alla jobbstegloggar för det angivna jobbet.

Permissions

Du kan ge EXECUTE behörigheter för denna procedur, men dessa behörigheter kan åsidosättas vid en SQL Server-uppgradering.

Andra användare måste tilldelas en av följande SQL Server Agent-fasta databasroller i databasen msdb :

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

För detaljer om behörigheterna för dessa roller, se SQL Server Agent Fixed Database Roles.

Endast medlemmar i sysadmin kan radera en jobbstegslogg som ägs av en annan användare.

Examples

A. Ta bort alla jobbstegloggar från ett jobb

Följande exempel tar bort alla jobbstegloggar för jobbet Weekly Sales Data Backup.

USE msdb;
GO

EXECUTE dbo.sp_delete_jobsteplog @job_name = N'Weekly Sales Data Backup';
GO

B. Ta bort loggen för ett visst jobbsteg

Följande exempel tar bort jobbets steglogg för steg 2 i jobbet Weekly Sales Data Backup.

USE msdb;
GO

EXECUTE dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 2;
GO

C. Ta bort alla jobbstegloggar baserat på ålder och storlek

Följande exempel tar bort alla loggar för jobbsteg som är äldre än middag den 25 oktober 2005 och större än 100 megabyte (MB) från jobbet Weekly Sales Data Backup.

USE msdb;
GO

EXECUTE dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @older_than = '10/25/2005 12:00:00',
    @larger_than = 104857600;
GO