sp_add_jobschedule (T-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance
Membuat jadwal untuk pekerjaan SQL Server Agent.
Penting
Pada Azure SQL Managed Instance, sebagian besar, tetapi tidak semua fitur SQL Server Agent saat ini didukung. Lihat Perbedaan T-SQL Azure SQL Managed Instance dari SQL Server untuk detailnya.
Sintaks
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 ]
[ ; ]
Argumen
[ @job_id = ] 'job_id'
Nomor identifikasi pekerjaan pekerjaan tempat jadwal ditambahkan. @job_id adalah uniqueidentifier, dengan default NULL
.
Baik @job_id atau @job_name harus ditentukan, tetapi keduanya tidak dapat ditentukan.
[ @job_name = ] N'job_name'
Nama pekerjaan tempat jadwal ditambahkan. @job_name adalah sysname, dengan default NULL
.
Baik @job_id atau @job_name harus ditentukan, tetapi keduanya tidak dapat ditentukan.
[ @name = ] N'name'
Nama jadwal. @name adalah sysname, tanpa default.
[ @enabled = ] diaktifkan
Menunjukkan status jadwal saat ini. @enabled kecil, dengan default 1
(diaktifkan). Jika 0
, jadwal tidak diaktifkan. Saat jadwal dinonaktifkan, pekerjaan tidak dijalankan.
[ @freq_type = ] freq_type
Nilai yang menunjukkan kapan pekerjaan akan dijalankan. @freq_type int, dan bisa menjadi salah satu nilai berikut:
Nilai | Deskripsi |
---|---|
1 |
Satu kali |
4 |
Harian |
8 |
Mingguan |
16 |
Bulanan |
32 |
Bulanan, relatif terhadap @freq_interval. |
64 |
Jalankan saat layanan SQL Server Agent dimulai. |
128 |
Jalankan ketika komputer diam. |
[ @freq_interval = ] freq_interval
Hari ketika pekerjaan dijalankan. @freq_interval int, dengan default 0
, dan bergantung pada nilai @freq_type seperti yang ditunjukkan dalam tabel berikut:
Nilai @freq_type | Pengaruh pada @freq_interval |
---|---|
1 (sekali) |
@freq_interval tidak digunakan. |
4 (harian) |
Setiap @freq_interval hari. |
8 (mingguan) |
@freq_interval adalah satu atau beberapa hal berikut (dikombinasikan dengan OR operator logis):1 = Minggu2 = Senin4 = Selasa8 = Rabu16 = Kamis32 = Jumat64 = Sabtu |
16 (bulanan) |
Pada hari @freq_interval dalam sebulan. |
32 (relatif bulanan) |
@freq_interval adalah salah satu hal berikut:1 = Minggu2 = Senin3 = Selasa4 = Rabu5 = Kamis6 = Jumat7 = Sabtu8 = Hari9 = Hari kerja10 = Hari akhir pekan |
64 (ketika layanan SQL Server Agent dimulai) |
@freq_interval tidak digunakan. |
128 |
@freq_interval tidak digunakan. |
[ @freq_subday_type = ] freq_subday_type
Menentukan unit untuk @freq_subday_interval. @freq_subday_type int, dan bisa menjadi salah satu nilai ini:
Nilai | Deskripsi (unit) |
---|---|
0x1 |
Pada waktu yang ditentukan |
0x2 |
Detik |
0x4 |
Menit |
0x8 |
Jam |
[ @freq_subday_interval = ] freq_subday_interval
Jumlah periode @freq_subday_type yang akan terjadi antara setiap eksekusi pekerjaan. @freq_subday_interval int, dengan default 0
.
[ @freq_relative_interval = ] freq_relative_interval
Lebih lanjut menentukan @freq_interval ketika @freq_type diatur ke 32
(relatif bulanan).
@freq_relative_interval int, dan bisa menjadi salah satu nilai berikut:
Nilai | Deskripsi (unit) |
---|---|
1 |
First |
2 |
Detik |
4 |
Ketiga |
8 |
Keempat |
16 |
Last |
@freq_relative_interval menunjukkan terjadinya interval. Misalnya, jika @freq_relative_interval diatur ke 2
, @freq_type diatur ke 32
, dan @freq_interval diatur ke 3
, pekerjaan terjadwal akan terjadi pada hari Selasa kedua setiap bulan.
[ @freq_recurrence_factor = ] freq_recurrence_factor
Jumlah minggu atau bulan antara eksekusi pekerjaan yang dijadwalkan. @freq_recurrence_factor int, dengan default 0
. @freq_recurrence_factor hanya digunakan jika @freq_type diatur ke 8
, , 16
atau 32
.
[ @active_start_date = ] active_start_date
Tanggal di mana eksekusi pekerjaan dapat dimulai. @active_start_date int, dengan default NULL
. Tanggal diformat sebagai yyyyMMdd
. Jika @active_start_date diatur, tanggal harus lebih besar dari atau sama dengan 19900101
.
Setelah jadwal dibuat, tinjau tanggal mulai dan konfirmasikan bahwa itu adalah tanggal yang benar. Untuk informasi selengkapnya, lihat bagian "Tanggal Mulai Penjadwalan" di Membuat dan Melampirkan Jadwal ke Pekerjaan.
[ @active_end_date = ] active_end_date
Tanggal di mana eksekusi pekerjaan dapat berhenti. @active_end_date int, dengan default 99991231
. Tanggal diformat sebagai yyyyMMdd
.
[ @active_start_time = ] active_start_time
Waktu setiap hari antara @active_start_date dan @active_end_date untuk memulai eksekusi pekerjaan. @active_start_time int, dengan default 000000
. Waktu diformat seperti HHmmss
pada jam 24 jam.
[ @active_end_time = ] active_end_time
Waktu pada setiap hari antara active_start_date dan @active_end_date untuk mengakhiri eksekusi pekerjaan. @active_end_time int, dengan default 235959
. Waktu diformat seperti HHmmss
pada jam 24 jam.
[ @schedule_id = ] schedule_id OUTPUT
Jadwalkan nomor identifikasi yang ditetapkan ke jadwal jika berhasil dibuat. @schedule_id adalah parameter OUTPUT dari jenis int.
[ @automatic_post = ] automatic_post
Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.
[ @schedule_uid = ] OUTPUT 'schedule_uid'
Pengidentifikasi unik untuk jadwal. @schedule_uid adalah parameter OUTPUT dari jenis uniqueidentifier.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Tataan hasil
Tidak ada.
Keterangan
Jadwal pekerjaan sekarang dapat dikelola secara independen dari pekerjaan. Untuk menambahkan jadwal ke pekerjaan, gunakan sp_add_schedule
untuk membuat jadwal dan sp_attach_schedule
melampirkan jadwal ke pekerjaan.
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.
Contoh
Contoh berikut menetapkan jadwal pekerjaan ke SaturdayReports
, yang dijalankan setiap Sabtu pukul 02.00.
EXEC 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