Sdílet prostřednictvím


sp_delete_jobsteplog (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Odstraní všechny logy pracovních kroků SQL Server Agenta, které jsou specifikovány s argumenty. Použijte msdb tuto uloženou proceduru k udržení tabulky sysjobsteplogs v databázi.

Transact-SQL konvence syntaxe

Syntaxe

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'

Identifikační číslo práce pro úlohu, která obsahuje záznam kroků, které má být odstraněno. @job_id je uniqueidentifier, s výchozím nastavením NULL.

Buď @job_id , nebo @job_name musí být specifikovány, ale ani jedno nelze specifikovat.

[ @job_name = ] N'job_name'

Název úlohy. @job_name je sysname s výchozím nastavením NULL.

Buď @job_id , nebo @job_name musí být specifikovány, ale ani jedno nelze specifikovat.

[ @step_id = ] step_id

Identifikační číslo kroku v práci, pro který má být záznam kroků smazán. @step_id je int, s výchozím nastavením NULL. Pokud nejsou zahrnuty, všechny záznamy o krocích práce v práci jsou smazány, pokud nejsou uvedeny @older_than nebo @larger_than .

Buď @step_id , nebo @step_name lze specifikovat, ale ani jedno nelze specifikovat.

[ @step_name = ] N'step_name'

Název kroku v práci, pro který má být záznam kroků smazán. @step_name je sysname, s výchozím nastavením NULL.

Buď @step_id , nebo @step_name lze specifikovat, ale ani jedno nelze specifikovat.

[ @older_than = ] older_than

Datum a čas nejstaršího pracovního deníku, který si chcete vést. @older_than je datetime, s výchozím nastavením NULL. Všechny záznamy o krocích práce starší než toto datum a čas jsou odstraněny.

Lze specifikovat jak @older_than , tak @larger_than .

[ @larger_than = ] larger_than

Velikost v bajtech největšího log kroků úlohy, který chcete uchovávat. @larger_than je int, s výchozím nastavením NULL. Všechny záznamy kroků práce větší než tato velikost jsou odstraněny.

Lze specifikovat jak @older_than , tak @larger_than .

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Sada výsledků

Žádné.

Poznámky

sp_delete_jobsteplog je v databázi msdb .

Pokud nejsou specifikovány žádné argumenty kromě @job_id nebo @job_name , všechny záznamy kroků pro danou práci jsou smazány.

Povolení

Na tomto postupu můžete udělit EXECUTE oprávnění, ale tato oprávnění mohou být během upgradu SQL Serveru přepsána.

Ostatní uživatelé musí mít v databázi msdb přiděleny některé z následujících pevných databázových rolí SQL Server Agent:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Podrobnosti o oprávněních těchto rolí naleznete v SQL Server Agent Fixed Database Roles.

Pouze členové sysadminu mohou smazat záznam kroků práce, který vlastní jiný uživatel.

Examples

A. Odstraňte všechny záznamy o pracovních krokech z práce

Následující příklad odstraní všechny záznamy kroků pro danou práci Weekly Sales Data Backup.

USE msdb;
GO

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

B. Odstraňte záznam kroků práce pro konkrétní krok

Následující příklad odstraní záznam kroků pro krok 2 v úlohě Weekly Sales Data Backup.

USE msdb;
GO

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

C. Odstraňte všechny záznamy o pracovních krokech podle věku a velikosti

Následující příklad odstraní všechny záznamy kroků úlohy, které jsou starší než poledne 25. října 2005 a větší než 100 megabajtů (MB) z dané úlohy 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