Bagikan melalui


sp_stop_job (T-SQL)

Berlaku untuk: SQL Server Azure SQL Managed Instance

Menginstruksikan SQL Server Agent untuk menghentikan eksekusi pekerjaan.

Konvensi sintaks transact-SQL

Sintaks

sp_stop_job
    [ [ @job_name = ] N'job_name' ]
    [ , [ @job_id = ] 'job_id' ]
    [ , [ @originating_server = ] N'originating_server' ]
    [ , [ @server_name = ] N'server_name' ]
[ ; ]

Argumen

[ @job_name = ] N'job_name'

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

[ @job_id = ] 'job_id'

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

[ @originating_server = ] N'originating_server'

Nama server asal. Jika ditentukan, semua pekerjaan multiserver dihentikan. @originating_server adalah sysname, dengan default NULL. Tentukan parameter ini hanya saat memanggil sp_stop_job di server target.

Fitur Administrasi Multi Server (MSX/TSX) tidak didukung pada Azure SQL Managed Instance.

Catatan

Hanya salah satu dari tiga parameter pertama yang dapat ditentukan.

[ @server_name = ] N'server_name'

Nama server target tertentu untuk menghentikan pekerjaan multiserver. @server_name adalah sysname, dengan default NULL. Tentukan parameter ini hanya saat memanggil sp_stop_job di server asal untuk pekerjaan multiserver.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Tidak ada.

Keterangan

sp_stop_job mengirim sinyal berhenti ke database. Beberapa proses dapat segera dihentikan dan beberapa harus mencapai titik stabil (atau titik masuk ke jalur kode) sebelum dapat berhenti. Beberapa pernyataan Transact-SQL yang berjalan lama seperti BACKUP, , RESTOREdan beberapa DBCC perintah dapat memakan waktu lama untuk diselesaikan. Ketika perintah ini berjalan, mungkin perlu waktu beberapa saat sebelum pekerjaan dibatalkan. Menghentikan pekerjaan menyebabkan entri "Pekerjaan Dibatalkan" dicatat dalam riwayat pekerjaan.

Jika pekerjaan saat ini menjalankan langkah jenis CmdExec atau PowerShell, proses yang dijalankan (misalnya, MyProgram.exe) dipaksa berakhir sebelum waktunya. Akhiran prematur dapat mengakibatkan perilaku yang tidak dapat diprediksi seperti file yang digunakan oleh proses yang ditahan terbuka. Dengan demikian, sp_stop_job harus digunakan hanya dalam keadaan ekstrem jika pekerjaan berisi langkah-langkah jenis CmdExec atau PowerShell.

Prosedur tersimpan sp_stop_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_stop_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 SQLAgentUserRole dan SQLAgentReaderRole hanya dapat menghentikan pekerjaan yang mereka miliki. Anggota SQLAgentOperatorRole dapat menghentikan semua pekerjaan lokal, termasuk pekerjaan yang dimiliki oleh pengguna lain. Anggota sysadmin dapat menghentikan semua pekerjaan lokal dan multiserver.

Contoh

Contoh berikut menghentikan pekerjaan bernama Weekly Sales Data Backup.

USE msdb;
GO

EXEC dbo.sp_stop_job N'Weekly Sales Data Backup';
GO