Aracılığıyla paylaş


sp_stop_job (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

SQL Server Agent'a bir işin yürütülmesini durdurmasını talimat verir.

Transact-SQL söz dizimi kuralları

Sözdizimi

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

Arguments

[ @job_name = ] N'job_name'

Durması gereken işin adı. @job_namesysname'dir ve varsayılan olarak .NULL

[ @job_id = ] 'job_id'

İşin kimlik numarası durdurulacak. @job_iduniqueidentifier'dır ve varsayılan olarak ' NULLdir.

[ @originating_server = ] N'originating_server'

Kaynak sunucunun adı. Belirtilirse, tüm çoklu sunucu işleri durdurulur. @originating_serversysname'dir, varsayılan olarak NULL. Bu parametreyi yalnızca hedef sunucuda çağrı sp_stop_job yaparken belirtin.

Multi Server Administration (MSX/TSX) özelliği Azure SQL Managed Instance'da desteklenmiyor.

Uyarı

İlk üç parametreden yalnızca biri belirtilebilir.

[ @server_name = ] N'server_name'

Çoklu sunucu işini durdurmak için hedef sunucunun adı. @server_namesysname'dir, varsayılan olarak .NULL Bu parametreyi yalnızca çoklu sunucu işi için orijinal sunucudan çağrı sp_stop_job yaparken belirtin.

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Sonuç kümesi

Yok.

Açıklamalar

sp_stop_job veritabanına dur sinyali gönderir. Bazı süreçler hemen durdurulabilir ve bazıları durmadan önce kararlı bir noktaya (veya kod yoluna giriş noktasına) ulaşmak zorundadır. Uzun süredir devam eden bazı Transact-SQL ifadeleri gibi BACKUP, RESTORE, ve bazı DBCC komutlar uzun zaman alabilir. Bu komutlar çalışırken, işin iptal edilmesi biraz zaman alabilir. Bir işi durdurmak, iş geçmişine "İş İptal Edildi" girişinin kaydedilmesine neden olur.

Eğer bir iş şu anda CmdExec veya PowerShell tipinde bir adım yürütüyorsa, çalıştırılan süreç (örneğin MyProgram.exe) erken sona ermek zorunda kalır. Erken sonlandırma, süreç tarafından kullanılan dosyaların açık tutulması gibi öngörülemez davranışlara yol açabilir. Bu nedenle, sp_stop_job sadece işte CmdExec veya PowerShell türünde adımlar varsa aşırı durumlarda kullanılmalıdır.

Bu saklanan prosedür, Azure SQL Veritabanı için Azure Elastic Jobs hizmeti için benzer bir nesneyle aynı adı paylaşırsp_stop_job. Elastic jobs versiyonu hakkında bilgi için jobs.sp_stop_job (Azure Elastic Jobs) bölümüne bakınız.

Permissions

EXECUTE Bu prosedür üzerinde izinler verebilirsiniz, ancak bu izinler SQL Server yükseltmesi sırasında geçersiz kalabilir.

Diğer kullanıcılara, veritabanındaki aşağıdaki sabit veritabanı rollerinden birine msdb sahip olmalıdır:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Bu rollerin izinleri hakkında detaylar için SQL Server Agent Fixed Database Roles bölümüne bakınız.

SQLAgentUserRole ve SQLAgentReaderRole üyeleri yalnızca sahip oldukları işleri durdurabilir. SQLAgentOperatorRole üyeleri, diğer kullanıcıların sahip olduğu işler dahil tüm yerel işleri durdurabilir. Sistem yöneticisi üyeleri tüm yerel ve çoklu sunucu işlerini durdurabilir.

Örnekler

Aşağıdaki örnek, . Weekly Sales Data Backupadlı bir işi durdurur.

USE msdb;
GO

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