sp_delete_schedule (T-SQL)

Berlaku untuk:SQL Server

Menghapus jadwal.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

[ @schedule_id = ] schedule_id

Nomor identifikasi jadwal yang akan dihapus. @schedule_id int, dengan default NULL.

Baik @schedule_id atau @schedule_name harus ditentukan, tetapi keduanya tidak dapat ditentukan.

[ @schedule_name = ] N'schedule_name'

Nama jadwal yang akan dihapus. @schedule_name adalah sysname, dengan default NULL.

Baik @schedule_id atau @schedule_name harus ditentukan, tetapi keduanya tidak dapat ditentukan.

[ @force_delete = ] force_delete

Menentukan apakah prosedur harus gagal jika jadwal dilampirkan ke pekerjaan. @force_delete adalah bit, dengan default 0.

  • Ketika @force_delete adalah 0, prosedur tersimpan gagal jika jadwal dilampirkan ke pekerjaan.
  • Ketika @force_delete adalah 1, jadwal dihapus terlepas dari apakah jadwal dilampirkan ke pekerjaan.

[ @automatic_post = ] automatic_post

Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Tidak ada.

Keterangan

Secara default, jadwal tidak dapat dihapus jika jadwal dilampirkan ke pekerjaan. Untuk menghapus jadwal yang dilampirkan ke pekerjaan, tentukan nilai 1 untuk @force_delete. Menghapus jadwal tidak menghentikan pekerjaan yang saat ini berjalan.

Izin

Prosedur tersimpan ini dimiliki oleh peran db_owner . Anda dapat memberikan EXECUTE izin untuk pengguna mana pun, tetapi izin ini dapat ditimpa selama peningkatan SQL Server.

Pengguna lain harus diberikan salah satu peran database tetap SQL Server Agent berikut dalam msdb database:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Pemilik pekerjaan dapat melampirkan pekerjaan ke jadwal dan melepaskan pekerjaan dari jadwal tanpa juga harus menjadi pemilik jadwal. Namun, jadwal tidak dapat dihapus jika pelampiran akan membiarkannya tanpa pekerjaan, kecuali pemanggil adalah pemilik jadwal.

Untuk detail tentang izin peran ini, lihat Peran Database Tetap Agen SQL Server.

Hanya anggota peran sysadmin yang dapat menghapus jadwal pekerjaan yang dimiliki oleh pengguna lain.

Contoh

J. Menghapus jadwal

Contoh berikut menghapus jadwal NightlyJobs. Jika jadwal dilampirkan ke pekerjaan apa pun, contohnya tidak menghapus jadwal.

USE msdb;
GO

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

B. Menghapus jadwal yang dilampirkan ke pekerjaan

Contoh berikut menghapus jadwal RunOnce, terlepas dari apakah jadwal dilampirkan ke pekerjaan.

USE msdb;
GO

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