Aracılığıyla paylaş


sp_add_jobschedule (Transact-SQL)

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

SQL Server Agent işi için bir program 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_jobschedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    , [ @name = ] N'name'
    [ , [ @enabled = ] enabled ]
    [ , [ @freq_type = ] freq_type ]
    [ , [ @freq_interval = ] freq_interval ]
    [ , [ @freq_subday_type = ] freq_subday_type ]
    [ , [ @freq_subday_interval = ] freq_subday_interval ]
    [ , [ @freq_relative_interval = ] freq_relative_interval ]
    [ , [ @freq_recurrence_factor = ] freq_recurrence_factor ]
    [ , [ @active_start_date = ] active_start_date ]
    [ , [ @active_end_date = ] active_end_date ]
    [ , [ @active_start_time = ] active_start_time ]
    [ , [ @active_end_time = ] active_end_time ]
    [ , [ @schedule_id = ] schedule_id OUTPUT ]
    [ , [ @automatic_post = ] automatic_post ]
    [ , [ @schedule_uid = ] 'schedule_uid' OUTPUT ]
[ ; ]

Arguments

[ @job_id = ] 'job_id'

Programın eklendiği işin iş tanımlama numarası. @job_iduniqueidentifier'dır ve varsayılan olarak ' NULLdir.

Ya @job_id ya da @job_name belirtilmelidir, ancak ikisi de belirtilemez.

[ @job_name = ] N'job_name'

Programın eklendiği işin adı. @job_namesysname'dir ve varsayılan olarak .NULL

Ya @job_id ya da @job_name belirtilmelidir, ancak ikisi de belirtilemez.

[ @name = ] ‘name

Zamanlamanın adı. @namesysname'dir, varsayılan yoktur.

[ @enabled = ] etkinleştirildi

Programın mevcut durumunu gösterir. @enabledtinyint, varsayılan 1 olarak (etkinleştirilmiş) olarak belirlenmiştir. Eğer 0, program etkinleştirilmiyor. Program devre dışı bırakıldığında, iş çalıştırılmaz.

[ @freq_type = ] freq_type

İşin ne zaman yapılacağını gösteren değer. @freq_typeint'tir ve aşağıdaki değerlerden biri olabilir:

Değer Description
1 Bir kez
4 Günlük
8 Weekly
16 Monthly
32 Aylık, @freq_interval ile karşılaştırıldığında.
64 SQL Server Agent servisi başladığında çalıştır.
128 Bilgisayar boşta durduğunda çalıştırın.

[ @freq_interval = ] freq_interval

İşin yapıldığı gün. @freq_intervalint'tir, varsayılan olarak 0, ve aşağıdaki tabloda belirtildiği gibi @freq_type değerine bağlıdır:

Değer @freq_type Etkisi @freq_interval
1 (bir kez) @freq_interval kullanılmıyor.
4 (günlük) Her @freq_interval günde bir.
8 (haftalık) @freq_interval , aşağıdakilerden biri veya birkaçındır (mantıksal bir OR operatörle birleşir):

1 = Pazar
2 = Pazartesi
4 = Salı
8 = Çarşamba
16 = Perşembe
32 = Cuma
64 = Cumartesi
16 (aylık) Ayın @freq_interval gününde.
32 (aylık akraba) @freq_interval aşağıdakilerden biridir:

1 = Pazar
2 = Pazartesi
3 = Salı
4 = Çarşamba
5 = Perşembe
6 = Cuma
7 = Cumartesi
8 = Gün
9 = Hafta içi
10 = Hafta sonu günü
64 (SQL Server Agent servisi başladığında) @freq_interval kullanılmıyor.
128 @freq_interval kullanılmıyor.

[ @freq_subday_type = ] freq_subday_type

@freq_subday_interval için birimleri belirtir. @freq_subday_typeint'tir ve şu değerlerden biri olabilir:

Değer Tanım (birim)
1 Belirtilen zamanda
2 Saniye
4 Minutes
8 Hours

[ @freq_subday_interval = ] freq_subday_interval

Her iş yürütme arasında gerçekleşecek @freq_subday_type dönem sayısı. @freq_subday_intervalint, varsayılan olarak .0

[ @freq_relative_interval = ] freq_relative_interval

Ayrıca, @freq_type32 (aylık aklaba) olarak ayarlandığında @freq_interval daha da tanımlanır.

@freq_relative_intervalint'dir ve şu değerlerden biri olabilir:

Değer Tanım (birim)
1 First
2 Second
4 Third
8 Fourth
16 Son

@freq_relative_interval aralığın oluşunu. Örneğin, @freq_relative_interval2ayarlıysa, @freq_type , 32@freq_interval3ise , olarak ayarlanmışsa, planlanmış iş her ayın ikinci Salı günü gerçekleşir.

[ @freq_recurrence_factor = ] freq_recurrence_factor

İşin planlanan yürütülmesi arasındaki hafta veya ay sayısı. @freq_recurrence_factorint, varsayılan olarak 0. @freq_recurrence_factor yalnızca @freq_type , 16, veya 32'ye ayarlandığında 8kullanılır.

[ @active_start_date = ] active_start_date

İşin yürütülmeye başlayacağı tarih. @active_start_dateint, varsayılan olarak .NULL Tarih olarak biçimlendirilmiştir yyyyMMdd. Eğer @active_start_date ayarlanmışsa, tarih daha büyük veya eşit 19900101olmalıdır.

Program oluşturulduktan sonra başlangıç tarihini gözden geçirin ve doğru tarih olduğundan emin olun. Daha fazla bilgi için, İşler Programları Oluştur ve Ekleyerek Çalışma bölümünde "Başlama Tarihini Planlama" bölümüne bakınız.

[ @active_end_date = ] active_end_date

İşin yürütülmesinin duracağı tarih. @active_end_dateint, varsayılan olarak .99991231 Tarih olarak biçimlendirilmiştir yyyyMMdd.

[ @active_start_time = ] active_start_time

İşin yürütülmeye başlaması için @active_start_date ile @active_end_date arasındaki herhangi bir gün. @active_start_timeint'tir, varsayılan olarak 000000. Saat, 24 saatlik bir saat biçimlendirilmiştir HHmmss .

[ @active_end_time = ] active_end_time

İşin sona ermesi active_start_date ile @active_end_date arasındaki herhangi bir gün. @active_end_timeint, varsayılan olarak .235959 Saat, 24 saatlik bir saat biçimlendirilmiştir HHmmss .

[ @schedule_id = ] schedule_id ÇIKIŞ

Başarılı şekilde oluşturulursa programa atanan program tanımlama numarası. @schedule_id , int tipinde bir OUTPUT parametresidir.

[ @automatic_post = ] automatic_post

Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmiyor. Gelecekteki uyumluluk garanti edilmemektedir.

[ @schedule_uid = ] 'schedule_uid' ÇIKIŞI

Takvim için benzersiz bir tanımlayıcı. @schedule_uid , benzersiz tanımlayıcı tipte bir OUTPUT parametresidir.

Dönüş kodu değerleri

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

Sonuç kümesi

Yok.

Açıklamalar

İş programları artık işlerden bağımsız olarak yönetilebilir. Bir işe bir program eklemek için, programı oluşturmak ve sp_attach_schedule programı bir işe eklemek için kullanınsp_add_schedule.

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.

Örnekler

Aşağıdaki örnek, her cumartesi saat 2:00'de çalıştırılan bir iş takvimi ataymaktadır SaturdayReports.

EXECUTE msdb.dbo.sp_add_jobschedule
    @job_name = N'SaturdayReports', -- Job name
    @name = N'Weekly_Sat_2AM', -- Schedule name
    @freq_type = 8, -- Weekly
    @freq_interval = 64, -- Saturday
    @freq_recurrence_factor = 1, -- every week
    @active_start_time = 20000; -- 2:00 AM