Aracılığıyla paylaş


sp_add_job (Transact-SQL)

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

SQL Server Agent servisi tarafından yürütülen yeni bir iş oluşturur.

Transact-SQL söz dizimi kuralları

Önemli

Azure SQL Managed Instanceüzerinde, SQL Server Agent özelliklerinin çoğu şu anda desteklenmektedir fakat hepsi değil. Detaylar için Azure SQL Managed Instance T-SQL Differences with SQL Server sayfasına bakınız.

Sözdizimi

sp_add_job
         [ @job_name = ] N'job_name'
     [ , [ @enabled = ] enabled ]
     [ , [ @description = ] N'description' ]
     [ , [ @start_step_id = ] step_id ]
     [ , [ @category_name = ] 'category' ]
     [ , [ @category_id = ] category_id ]
     [ , [ @owner_login_name = ] 'login' ]
     [ , [ @notify_level_eventlog = ] eventlog_level ]
     [ , [ @notify_level_email = ] email_level ]
     [ , [ @notify_level_netsend = ] netsend_level ]
     [ , [ @notify_level_page = ] page_level ]
     [ , [ @notify_email_operator_name = ] 'email_name' ]
     [ , [ @notify_netsend_operator_name = ] 'netsend_name' ]
     [ , [ @notify_page_operator_name = ] 'page_name' ]
     [ , [ @delete_level = ] delete_level ]
     [ , [ @job_id = ] job_id OUTPUT ]
[ ; ]

Arguments

@job_name

İşin adı. İsim benzersiz olmalı ve yüzde (%) karakterini içermemelidir. @job_namenvarchar(128)'dir ve varsayılan yoktur. Gerekli.

@enabled

Eklenen işin durumunu gösterir. EtkinTinyint, varsayılan 1 olarak (etkin) olarak belirlenir. Eğer 0, iş etkin değildir ve programına göre çalışmaz; ancak manuel olarak çalıştırılabilir.

@description

İşin tanımı. @descriptionnvarchar(512)'dir ve varsayılan olarak .NULL @description atlanırsa, N'No description available' kullanılır.

@start_step_id

İş için ilk adımın kimlik numarası. @start_step_idint, varsayılan olarak .1

@category_name

İş için kategori. @category_namesysname'dir, varsayılan olarak .NULL

@category_id

Bir iş kategorisi belirtmek için dil bağımsız bir mekanizma. @category_idint, varsayılan olarak .NULL

@owner_login_name

İşin sahibi olan giriş girişinin adı. @owner_login_name, varsayılan olarak sysname'dirNULL ve mevcut giriş adı olarak yorumlanır. Yalnızca sistem yöneticisi sabit sunucu rolünün üyeleri @owner_login_name değerini ayarlayabilir veya değiştirebilir. Sysadmin rol setine girmeyen veya @owner_login_name değerini değiştiren kullanıcılar bu saklanan prosedürün yürütülmesi başarısız olur ve hata döner.

@notify_level_eventlog

Bu iş için Microsoft Windows uygulama günlüğüne ne zaman bir giriş yerleştirileceğini gösteren bir değer. @notify_level_eventlogint'dir ve şu değerlerden biri olabilir:

Değer Description
0 Hiç
1 Başarılı olduğunda
2 (varsayılan) Hata durumunda
3 Her zaman

@notify_level_email

Bu iş tamamlandıktan sonra e-posta göndermek için ne zaman gönderileceğini gösteren bir değer. @notify_level_emailint'tir, varsayılan 0olarak , bu da asla' anlamına gelir. @notify_level_email@notify_level_eventlog ile aynı değerleri kullanır.

@notify_level_netsend

Bu iş tamamlandığında ağ mesajı gönderileceğini gösteren bir değer. @notify_level_netsendint'tir, varsayılan 0olarak , bu da asla' anlamına gelir. @notify_level_netsend@notify_level_eventlog ile aynı değerleri kullanır.

@notify_level_page

Bu iş tamamlandıktan sonra sayfa gönderileceğini gösteren bir değerdir. @notify_level_pageint'tir, varsayılan 0olarak , bu da asla' anlamına gelir. @notify_level_page@notify_level_eventlog ile aynı değerleri kullanır.

@notify_email_operator_name

Ulaşıldığında e-posta göndereceği kişinin @notify_email_operator_name e-posta adı. @notify_email_operator_namesysname'dir ve varsayılan olarak .NULL

@notify_netsend_operator_name

Bu iş tamamlandığında ağ mesajının gönderildiği operatörün adı. @notify_netsend_operator_namesysname'dir ve varsayılan olarak .NULL

@notify_page_operator_name

Bu işi tamamladıktan sonra sayfa olarak iletecek kişinin adı. @notify_page_operator_namesysname'dir ve varsayılan olarak NULL.

@delete_level

İşin ne zaman silineceğini gösteren bir değer. delete_valueint, varsayılan 0olarak , yani asla. @delete_level , @notify_level_eventlog ile aynı değerleri kullanır.

Uyarı

@delete_level3olduğunda, iş yalnızca bir kez yürütülür, iş için tanımlanan herhangi bir takvim ne olursa olsun. Ayrıca, bir iş kendini silerse, tüm iş geçmişi de silinir.

çıktıyı @job_id

Başarılı bir şekilde oluşturulursa işe atanan iş tanımlama numarası. @job_id , benzersiz tanımlayıcı tipinde bir çıktı değişkenidir ve varsayılan olarak ' NULLdir.

Dönüş kodu değerleri

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

Sonuç kümesi

Yok.

Açıklamalar

@originating_server içinde sp_add_jobvardır, ancak Argümanlar bölümünde listelenmemiştir. @originating_server iç kullanım için ayrılmıştır.

Bir sp_add_job iş eklemek için yürütüldükten sonra, sp_add_jobstep iş için faaliyetleri gerçekleştiren adımları eklemek için kullanılabilir. sp_add_jobschedule SQL Server Agent servisinin işi çalıştırmak için kullandığı programı oluşturmak için kullanılabilir.

İşin çalıştırıldığı SQL Server örneğini ayarlamak ve sp_delete_jobserver işi SQL Server örneğinden kaldırmak için kullanılırsp_add_jobserver. Eğer iş çoklu sunucu ortamında bir veya daha fazla hedef sunucuda çalışıyorsa, iş için hedef sunucuları veya hedef sunucu gruplarını ayarlamak için kullanın sp_apply_job_to_targets . Hedef sunuculardan veya hedef sunucu gruplarından işleri kaldırmak için sp_remove_job_from_targets. Çoklu Sunucu Yönetimi (MSX/TSX) özelliği, Azure SQL Yönetilen Örnek'te desteklenmemektedir.

SQL Server Management Studio işleri yönetmek için kolay, grafik bir yol sağlar ve iş altyapısını oluşturmak ve yönetmek için önerilen yoldur.

Bu saklanan prosedür, Azure SQL Veritabanı için Azure Elastic Jobs hizmeti için benzer bir nesneyle aynı adı paylaşırsp_add_job. Elastic jobs versiyonu hakkında bilgi için jobs.sp_add_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.

Yalnızca sistem yöneticisi sabit sunucu rolünün üyeleri @owner_login_name değerini ayarlayabilir veya değiştirebilir. Sysadmin rol setine girmeyen veya @owner_login_name değerini değiştiren kullanıcılar bu saklanan prosedürün yürütülmesi başarısız olur ve hata döner.

Örnekler

A. İş ekle

Bu örnek, . NightlyBackupsadlı yeni bir iş ekliyor.

USE msdb;
GO

EXECUTE dbo.sp_add_job @job_name = N'NightlyBackups';
GO

B. Pager, e-posta ve net gönderme bilgisi ile bir iş ekle

Bu örnek, iş başarısız olursa (pager, e-posta veya ağ açılır mesajı ile) bildirim veren ve başarılı tamamlandığında işi silen bir iş adlı Ad hoc Sales Data BackupFrançois Ajenstat bir iş oluşturur.

Uyarı

Bu örnek, bir operatör adlandırılmış François Ajenstat ve bir login adlı françoisa zaten var olduğunu varsayar.

USE msdb;
GO

EXECUTE dbo.sp_add_job
    @job_name = N'Ad hoc Sales Data Backup',
    @enabled = 1,
    @description = N'Ad hoc backup of sales data',
    @owner_login_name = N'françoisa',
    @notify_level_eventlog = 2,
    @notify_level_email = 2,
    @notify_level_netsend = 2,
    @notify_level_page = 2,
    @notify_email_operator_name = N'François Ajenstat',
    @notify_netsend_operator_name = N'François Ajenstat',
    @notify_page_operator_name = N'François Ajenstat',
    @delete_level = 1;
GO