Delen via


sp_delete_jobsteplog (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Verwijdert alle SQL Server Agent job step-logs die met de argumenten zijn gespecificeerd. Gebruik deze opgeslagen procedure om de sysjobstepslogs-tabel in de msdb database te onderhouden.

Transact-SQL syntaxis-conventies

Syntaxis

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'

Het functieidentificatienummer van de taak die het staplogboek bevat dat verwijderd moet worden. @job_id is uniqueidentifier, met als standaard .NULL

Zowel @job_id als @job_name moeten worden gespecificeerd, maar beide kunnen niet worden gespecificeerd.

[ @job_name = ] N'job_name'

De naam van de taak. @job_name is sysname, met als standaard .NULL

Zowel @job_id als @job_name moeten worden gespecificeerd, maar beide kunnen niet worden gespecificeerd.

[ @step_id = ] step_id

Het identificatienummer van de stap in de taak waarvoor het staplogboek van de taak verwijderd moet worden. @step_id is int, met als standaard .NULL Als ze niet zijn opgenomen, worden alle staplogboeken van de taak verwijderd tenzij @older_than of @larger_than worden gespecificeerd.

Zowel @step_id als @step_name kunnen worden gespecificeerd, maar beide niet.

[ @step_name = ] N'step_name'

De naam van de stap in de taak waarvoor het taakstaplogboek verwijderd moet worden. @step_name is sysname, met als standaard .NULL

Zowel @step_id als @step_name kunnen worden gespecificeerd, maar beide niet.

[ @older_than = ] older_than

De datum en tijd van het oudste taakstaplogboek dat je wilt bijhouden. @older_than is datumtijd, met als standaard NULL. Alle taakstaplogboeken die ouder zijn dan deze datum en tijd worden verwijderd.

Zowel @older_than als @larger_than kunnen worden gespecificeerd.

[ @larger_than = ] larger_than

De grootte in bytes van het grootste taakstaplogboek dat je wilt bijhouden. @larger_than is int, met als standaard .NULL Alle jobstaplogs die groter zijn dan deze grootte worden verwijderd.

Zowel @older_than als @larger_than kunnen worden gespecificeerd.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Resultaatset

Geen.

Opmerkingen

sp_delete_jobsteplog in de msdb database staat.

Als er geen argumenten anders dan @job_id of @job_name zijn gespecificeerd, worden alle taakstaplogboeken voor de opgegeven taak verwijderd.

Permissions

Je kunt rechten verlenen EXECUTE op deze procedure, maar deze rechten kunnen worden overschreven tijdens een SQL Server-upgrade.

Andere gebruikers moeten een van de volgende vaste SQL Server Agent-databaserollen in de msdb database krijgen:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Voor details over de rechten van deze rollen, zie SQL Server Agent Fixed Database Roles.

Alleen leden van de sysadmin kunnen een taakstaplog verwijderen dat eigendom is van een andere gebruiker.

Voorbeelden

Eén. Verwijder alle taakstaplogs uit een taak

Het volgende voorbeeld verwijdert alle taakstaplogs voor de taak Weekly Sales Data Backup.

USE msdb;
GO

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

B. Verwijder het taakstaplogboek voor een bepaalde taakstap

Het volgende voorbeeld verwijdert het staplogboek van de taak voor stap 2 in de taak Weekly Sales Data Backup.

USE msdb;
GO

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

C. Verwijder alle taakstaplogboeken op basis van leeftijd en grootte

Het volgende voorbeeld verwijdert alle taakstaplogs die ouder zijn dan het middaguur op 25 oktober 2005 en groter dan 100 megabyte (MB) uit de taak.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