Aracılığıyla paylaş


sp_add_schedule (Transact-SQL)

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

Herhangi bir sayıda iş tarafından kullanılabilecek bir zamanlama oluşturur.

Transact-SQL söz dizimi kuralları

Sözdizimi

sp_add_schedule
    [ @schedule_name = ] 'schedule_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 ]
    [ , [ @owner_login_name = ] 'owner_login_name' ]
    [ , [ @schedule_uid = ] schedule_uid OUTPUT ]
    [ , [ @schedule_id = ] schedule_id OUTPUT ]
    [ , [ @originating_server = ] server_name ] /* internal */
[ ; ]

Tartışmalar

@schedule_name [ = ] 'schedule_name'

Zamanlamanın adı. @schedule_namesysname'dir ve varsayılan değer yoktur.

[ @enabled = ] etkin

Zamanlamanın geçerli durumunu gösterir. @enabled, varsayılan değeri (etkin) olan 1. ise 0, zamanlama etkinleştirilmez. Zamanlama etkinleştirilmediğinde, bu zamanlamada hiçbir iş çalıştırılamaz.

@freq_type [ = ] freq_type

bir işin ne zaman yürütülecek olduğunu gösteren değer. @freq_type, varsayılan değeri olan 0 değeridir ve bu değerlerden biri olabilir.

Değer Açıklama
1 Bir kez
4 Günlük
8 Haftalık
16 Aylık
32 Aylık, @freq_interval göre
64 SQL Server Agent hizmeti başlatıldığında çalıştır
128 Bilgisayar boşta olduğunda komutunu çalıştırın ( Azure SQL Yönetilen Örneği'nde desteklenmez)

@freq_interval [ = ] @freq_interval

bir işin yürütülürken olduğu günler. @freq_interval, varsayılan değeri ile 1 ve @freq_type değerine bağlıdır.

@freq_type değeri @freq_interval etkisi
1 (bir kez) @freq_interval kullanılmamış.
4 (günlük) Her @freq_interval günde bir.
8 (haftalık) @freq_interval aşağıdakilerden biri veya daha fazlasıdır (mantıksal işleçle birlikte OR ):

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 göreli) @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 (SQLServerAgent hizmeti başlatıldığında) @freq_interval kullanılmamış.
128 @freq_interval kullanılmamış.

@freq_subday_type [ = ] freq_subday_type

@freq_subday_interval birimlerini belirtir. @freq_subday_type, varsayılan değeri olan 0 değeridir ve bu değerlerden biri olabilir.

Değer Açıklama (birim)
1 Belirtilen zamanda
2 Saniye
4 Toplantı Tutanağı
8 Saat

@freq_subday_interval [ = ] freq_subday_interval

bir işin her yürütülmesi arasında gerçekleşecek @freq_subday_type dönem sayısı. @freq_subday_interval, varsayılan değeri olan int'tir0. Aralık en az 10 saniye uzunluğunda olmalıdır. @freq_subday_type eşit olduğu durumlarda 1 yoksayılır.

@freq_relative_interval [ = ] freq_relative_interval

@freq_interval 32 (aylık göreli) ise bir işin her ay @freq_interval oluşumu. @freq_relative_interval, varsayılan değeri olan 0 değeridir ve bu değerlerden biri olabilir. @freq_type 32'ye eşit olmadığı durumlarda @freq_relative_interval yoksayılır.

Değer Açıklama (birim)
1 İlk
2 İkinci
4 Üçüncü
8 Dördüncü
16 Son

@freq_recurrence_factor [ = ] freq_recurrence_factor

Bir işin zamanlanmış yürütülmesi arasındaki hafta veya ay sayısı. @freq_recurrence_factor yalnızca @freq_type , 8veya 16ise 32kullanılır. @freq_recurrence_factor, varsayılan değeri olan int'tir0.

@active_start_date [ = ] active_start_date

bir işin yürütülmesinin başlatıldığı tarih. @active_start_date, bugünün tarihini gösteren varsayılan değeriyle NULL. Tarih olarak yyyyMMddbiçimlendirilir. @active_start_date değilseNULL, tarih 19900101'den büyük veya buna eşit olmalıdır.

Zamanlama oluşturulduktan sonra başlangıç tarihini gözden geçirin ve doğru tarih olduğunu onaylayın. Daha fazla bilgi için, İşlere Zamanlama Oluşturma ve Ekleme bölümündeki "Zamanlama Başlangıç Tarihi" bölümüne bakın.

Haftalık veya aylık zamanlamalar için Aracı, @active_start_date geçmişte olup olmadığını yoksayar ve bunun yerine geçerli tarihi kullanır. Kullanılarak sp_add_schedule bir SQL Server Aracısı zamanlaması oluşturulduğunda, iş yürütmenin başladığı tarih olan @active_start_date parametresini belirtme seçeneği vardır. Zamanlama türü haftalık veya aylık ise ve @active_start_date parametresi geçmişteki bir tarihe ayarlanmışsa , @active_start_date parametresi yoksayılır ve geçerli tarih @active_start_date için kullanılır.

@active_end_date [ = ] active_end_date

bir işin yürütülmesinin durdurulabileceği tarih. @active_end_date, varsayılan değeri 31 Aralık 9999 olan 99991231. olarak yyyyMMddbiçimlendirildi.

@active_start_time [ = ] active_start_time

bir işin yürütülmesine başlamak için @active_start_date ile @active_end_date arasındaki herhangi bir günün saati. @active_start_time, 24 saatlik bir saat üzerinde 12:00:00:00'ı gösteren varsayılan değeriyle 000000 ve formu HHmmsskullanılarak girilmelidir.

@active_end_time [ = ] active_end_time

bir işin yürütülmesini sonlandırmak için @active_start_date ile @active_end_date arasındaki herhangi bir günün saati. @active_end_time, 24 saatlik bir saat üzerinde 23:59:59'i gösteren varsayılan değeriyle 235959 ve formu HHmmsskullanılarak girilmelidir.

@owner_login_name [ = ] 'owner_login_name'

Zamanlamaya sahip olan sunucu sorumlusunun adı. @owner_login_namesysname değeridir ve varsayılan değeri NULL, zamanlamanın oluşturucuya ait olduğunu gösterir.

[ @schedule_uid = ] schedule_uid ÇıKıŞ

Zamanlama için benzersiz bir tanımlayıcı. @schedule_uid, uniqueidentifier türünde bir değişkendir.

[ @schedule_id = ] schedule_id ÇıKıŞ

Zamanlamanın tanımlayıcısı. @schedule_id, int türünün bir değişkenidir.

@originating_server [ = ] server_name

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

Dönüş kodu değerleri

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

Sonuç kümesi

Yok.

Açıklamalar

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.

İzinler

Bu yordamda EXECUTE izinler vekleyebilirsiniz, ancak bu izinler SQL Server yükseltmesi sırasında geçersiz kılınabilir.

Diğer kullanıcılara msdb veritabanında aşağıdaki SQL Server Aracısı sabit veritabanı rollerinden biri verilmelidir:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Bu rollerin izinleri hakkında ayrıntılı bilgi için bkz. SQL Server Agent Sabit Veritabanı Rolleri.

Örnekler

A. Bir zamanlama oluşturma

Aşağıdaki örnek adlı RunOncebir zamanlama oluşturur. Zamanlama, 23:30 zamanlamanın oluşturulduğu günde bir kez çalışır.

USE msdb;
GO

EXECUTE dbo.sp_add_schedule
    @schedule_name = N'RunOnce',
    @freq_type = 1,
    @active_start_time = 233000;
GO

B. Zamanlama oluşturma, zamanlamayı birden çok işe ekleme

Aşağıdaki örnek adlı NightlyJobsbir zamanlama oluşturur. Bu zamanlamayı kullanan işler, sunucudaki 01:00zaman olduğunda her gün yürütülür. Örnek, zamanlamayı işe ve işe BackupDatabaseRunReportsekler.

Uyarı

Bu örnekte işin ve BackupDatabase işin RunReports zaten var olduğu varsayılır.

USE msdb;
GO

EXECUTE sp_add_schedule
    @schedule_name = N'NightlyJobs',
    @freq_type = 4,
    @freq_interval = 1,
    @active_start_time = 010000;
GO

EXECUTE sp_attach_schedule
    @job_name = N'BackupDatabase',
    @schedule_name = N'NightlyJobs';
GO

EXECUTE sp_attach_schedule
    @job_name = N'RunReports',
    @schedule_name = N'NightlyJobs';
GO