Bagikan melalui


sp_delete_job (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Menghapus pekerjaan dari layanan SQL Server Agent.

Konvensi sintaks transact-SQL

Sintaks

sp_delete_job
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @originating_server = ] N'originating_server' ]
    [ , [ @delete_history = ] delete_history ]
    [ , [ @delete_unused_schedule = ] delete_unused_schedule ]
[ ; ]

Argumen

[ @job_id = ] 'job_id'

Nomor identifikasi pekerjaan yang akan dihapus. @job_id adalah uniqueidentifier, dengan default NULL.

Baik @job_id atau @job_name harus ditentukan; keduanya tidak dapat ditentukan.

[ @job_name = ] N'job_name'

Nama pekerjaan yang akan dihapus. @job_name adalah sysname, dengan default NULL.

Baik @job_id atau @job_name harus ditentukan; keduanya tidak dapat ditentukan.

[ @originating_server = ] N'originating_server'

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

[ @delete_history = ] delete_history

Menentukan apakah akan menghapus riwayat untuk pekerjaan tersebut. @delete_history adalah bit, dengan default 1.

  • Ketika @delete_history adalah 1, riwayat pekerjaan untuk pekerjaan dihapus.
  • Saat @delete_history adalah 0, riwayat pekerjaan tidak dihapus.

Ketika pekerjaan dihapus dan riwayat tidak dihapus, informasi historis untuk pekerjaan tidak ditampilkan dalam riwayat pekerjaan antarmuka pengguna grafis SQL Server Agent, tetapi informasi masih berada dalam sysjobhistory tabel dalam msdb database.

[ @delete_unused_schedule = ] delete_unused_schedule

Menentukan apakah akan menghapus jadwal yang dilampirkan ke pekerjaan ini jika tidak dilampirkan ke pekerjaan lain. @delete_unused_schedule adalah bit, dengan default 1.

  • Ketika @delete_unused_schedule adalah 1, jadwal yang dilampirkan ke pekerjaan ini dihapus jika tidak ada pekerjaan lain yang mereferensikan jadwal.
  • Saat @delete_unused_schedule adalah 0, jadwal tidak dihapus.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Tidak ada.

Keterangan

Argumen @originating_server dicadangkan untuk penggunaan internal.

Argumen @delete_unused_schedule memberikan kompatibilitas mundur dengan versi SQL Server sebelumnya dengan secara otomatis menghapus jadwal yang tidak dilampirkan ke pekerjaan apa pun. Parameter ini default ke perilaku yang kompatibel dengan mundur. Untuk mempertahankan jadwal yang tidak dilampirkan ke pekerjaan, Anda harus memberikan nilai 0 sebagai argumen @delete_unused_schedule .

SQL Server Management Studio menyediakan cara grafis yang mudah untuk mengelola pekerjaan, dan merupakan cara yang direkomendasikan untuk membuat dan mengelola infrastruktur pekerjaan.

Prosedur tersimpan ini tidak dapat menghapus rencana pemeliharaan, dan tidak dapat menghapus pekerjaan yang merupakan bagian dari rencana pemeliharaan. Sebagai gantinya, gunakan SQL Server Management Studio untuk menghapus rencana pemeliharaan.

Prosedur tersimpan sp_delete_job ini berbagi nama dengan objek serupa untuk layanan Azure Elastic Jobs untuk Azure SQL Database. Untuk informasi tentang versi pekerjaan elastis, lihat jobs.sp_delete_job (Azure Elastic Jobs) (Transact-SQL).

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

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

Anggota peran server tetap sysadmin dapat menjalankan sp_delete_job untuk menghapus pekerjaan apa pun. Pengguna yang bukan anggota peran server tetap sysadmin hanya dapat menghapus pekerjaan yang dimiliki oleh pengguna tersebut.

Contoh

Contoh berikut menghapus pekerjaan NightlyBackups.

USE msdb;
GO

EXEC sp_delete_job
    @job_name = N'NightlyBackups';
GO