Megosztás a következőn keresztül:


sp_delete_jobsteplog (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

Eltávolítja az összes SQL Server Agent munkalépésnaplót, amely az argumentumokkal együtt van megadva. Ezt msdb a tárolt eljárást használd a sysjobstepslogs táblájának karbantartásához az adatbázisban.

Transact-SQL szintaxis konvenciók

Szemantika

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'

A munka azonosító száma, amely tartalmazza a munka lépésnaplóját, el kell távolítani. @job_idaz uniqueidentifier, alapértelmezettként NULL.

Vagy @job_id , akár @job_name meg kell határozni, de mindkettőt nem lehet meghatározni.

[ @job_name = ] N'job_name'

A feladat neve. @job_name a sysname, alapértelmezettként NULL.

Vagy @job_id , akár @job_name meg kell határozni, de mindkettőt nem lehet meghatározni.

[ @step_id = ] step_id

Az a lépés azonosító száma, amelyhez a munkalépési naplót törölni kell. @step_idint, alapértelmezés NULL. Ha nincs benne, az összes munkalépési napló törlődik a munkában, hacsak @older_than vagy @larger_than nem vannak megadva.

Vagy @step_id , akár @step_name meg lehet határozni, de mindkettő nem.

[ @step_name = ] N'step_name'

Az a lépés neve a feladatban, amelyhez a munka lépésnaplóját törölni kell. @step_namea sysname, alapértelmezett értéke NULL.

Vagy @step_id , akár @step_name meg lehet határozni, de mindkettő nem.

[ @older_than = ] older_than

A legrégebbi munka lépésnaplójának dátuma és időpontja, amit meg akarsz vezetni. @older_thandátumidő, alapértelmezés NULL. Minden munkalépési naplót, amely régebbi, mint ez a dátum és az idő, eltávolításra kerül.

Mind a @older_than , mind a @larger_than meg lehet határozni.

[ @larger_than = ] larger_than

A legnagyobb munkalépésnapló bájtokban terjedő mérete, amit meg akarsz tartani. @larger_thanint, alapértelmezés NULLszerint . Minden nagyobb munkalépési naplót eltávolítunk, mint ennyire.

Mind a @older_than , mind a @larger_than meg lehet határozni.

Kódértékek visszaadása

0 (sikeres) vagy 1 (hiba).

Eredményhalmaz

Nincs.

Megjegyzések

sp_delete_jobsteplog az msdb adatbázisban található.

Ha nincs megadva, kivéve @job_id vagy @job_name , akkor az adott feladathoz tartozó összes munkalépésnaplót törölnek.

Permissions

Ezen az eljáráshoz engedélyeket adhatsz EXECUTE , de ezek az engedélyek felülbírálhatók egy SQL Server frissítés során.

Más felhasználóknak az alábbi SQL Server Agent rögzített adatbázis-szerepek egyikét kell megadniuk az msdb adatbázisban:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Ezeknek a szerepköröknek a jogosultságairól az SQL Server Agent Fixed Database Roles oldalon találja a részleteket.

Csak a rendszerrendszergaztai törölhetnek egy olyan munkalépési naplót, amely egy másik felhasználó tulajdonában van.

Példák

A. Távolítsd el az összes munkalépési naplót egy munkából

A következő példa eltávolítja az összes munkalépési naplót a feladathoz Weekly Sales Data Backup.

USE msdb;
GO

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

B. Távolítsd el a munkalépésnaplót egy adott feladatlépéshez

A következő példa eltávolítja a feladat lépésnaplóját a 2. lépéshez a feladatból Weekly Sales Data Backup.

USE msdb;
GO

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

C. Töröld az összes munkalépési naplót az életkor és méret alapján

A következő példa eltávolítja az összes olyan munkalépési naplót, amely 2005. október 25-én dél előtt és 100 megabájtnál (MB Weekly Sales Data Backup) nagyobb.

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