sp_delete_schedule (Transact-SQL)

Gäller för:SQL Server

Tar bort ett schema.

Transact-SQL syntaxkonventioner

Syntax

sp_delete_schedule
    [ [ @schedule_id = ] schedule_id ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @force_delete = ] force_delete ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Arguments

[ @schedule_id = ] schedule_id

Schemaidentifieringsnumret för schemat som ska tas bort. @schedule_id är int, med standardvärdet .NULL

Antingen @schedule_id eller @schedule_name måste specificeras, men båda kan inte specificeras.

[ @schedule_name = ] N'schedule_name'

Namnet på schemat som ska tas bort. @schedule_name är sysname, med standardvärdet .NULL

Antingen @schedule_id eller @schedule_name måste specificeras, men båda kan inte specificeras.

[ @force_delete = ] force_delete

Specificerar om proceduren ska misslyckas om schemat är kopplat till ett jobb. @force_delete är bit, med standardvärdet .0

  • När @force_delete är 0, misslyckas den lagrade proceduren om schemat är kopplat till ett jobb.
  • När @force_delete är 1, tas schemat bort oavsett om schemat är kopplat till ett jobb eller inte.

[ @automatic_post = ] automatic_post

Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Resultatuppsättning

Ingen.

Anmärkningar

Som standard kan ett schema inte raderas om schemat är kopplat till ett jobb. För att ta bort ett schema som är kopplat till ett jobb, ange ett värde för 1för @force_delete. Att radera ett schema stoppar inte jobb som för närvarande körs.

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

Jobbägaren kan koppla ett jobb till ett schema och koppla bort ett jobb från ett schema utan att också behöva vara schemaansvarig. Ett schema kan dock inte tas bort om detachern skulle lämna det utan jobb, om inte den som ringer är schemaägaren.

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

Endast medlemmar i sysadmin-rollen kan radera ett jobbschema som ägs av en annan användare.

Examples

A. Ta bort ett schema

Följande exempel tar bort schemat NightlyJobs. Om schemat är kopplat till något jobb, raderar exemplet inte schemat.

USE msdb;
GO

EXECUTE dbo.sp_delete_schedule @schedule_name = N'NightlyJobs';
GO

B. Ta bort ett schema kopplat till ett jobb

Följande exempel tar bort schemat RunOnce, oavsett om schemat är kopplat till ett jobb eller inte.

USE msdb;
GO

EXECUTE dbo.sp_delete_schedule
    @schedule_name = 'RunOnce',
    @force_delete = 1;
GO