sp_stop_job (T-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance
Menginstruksikan SQL Server Agent untuk menghentikan eksekusi pekerjaan.
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
, , RESTORE
dan 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).
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