sp_add_schedule (T-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance
Membuat jadwal yang dapat digunakan oleh sejumlah pekerjaan.
Sintaks
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 */
[ ; ]
Argumen
[ @schedule_name = ] 'schedule_name'
Nama jadwal. @schedule_name adalah sysname, tanpa default.
[ @enabled = ] diaktifkan
Menunjukkan status jadwal saat ini. @enabled kecil, dengan default 1
(diaktifkan). Jika 0
, jadwal tidak diaktifkan. Ketika jadwal tidak diaktifkan, tidak ada pekerjaan yang berjalan pada jadwal ini.
[ @freq_type = ] freq_type
Nilai yang menunjukkan kapan pekerjaan akan dijalankan. @freq_type int, dengan default 0
, dan dapat menjadi salah satu nilai ini.
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 saat komputer diam (tidak didukung di Azure SQL Managed Instance) |
[ @freq_interval = ] @freq_interval
Hari-hari pekerjaan dijalankan. @freq_interval int, dengan default 1
, dan tergantung pada nilai @freq_type.
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 SQLServerAgent 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, dengan default 0
, dan dapat 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
. Interval harus setidaknya 10 detik. @freq_subday_interval diabaikan dalam kasus-kasus di mana @freq_subday_type sama dengan 1
.
[ @freq_relative_interval = ] freq_relative_interval
Terjadinya pekerjaan @freq_interval dalam setiap bulan, jika @freq_interval adalah 32 (relatif bulanan). @freq_relative_interval int, dengan default 0
, dan dapat menjadi salah satu nilai ini. @freq_relative_interval diabaikan dalam kasus-kasus di mana @freq_type tidak sama dengan 32.
Nilai | Deskripsi (unit) |
---|---|
1 |
First |
2 |
Detik |
4 |
Ketiga |
8 |
Keempat |
16 |
Last |
[ @freq_recurrence_factor = ] freq_recurrence_factor
Jumlah minggu atau bulan antara eksekusi pekerjaan yang dijadwalkan. @freq_recurrence_factor hanya digunakan jika @freq_type adalah 8
, , 16
atau 32
. @freq_recurrence_factor int, dengan default 0
.
[ @active_start_date = ] active_start_date
Tanggal di mana eksekusi pekerjaan dapat dimulai. @active_start_date int, dengan default NULL
, yang menunjukkan tanggal hari ini. Tanggal diformat sebagai yyyyMMdd
. Jika @active_start_date bukan NULL, 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.
Untuk jadwal mingguan atau bulanan, Agen mengabaikan jika @active_start_date berada di masa lalu, dan sebaliknya menggunakan tanggal saat ini. Saat jadwal SQL Server Agent dibuat menggunakan sp_add_schedule
ada opsi untuk menentukan parameter @active_start_date yang merupakan tanggal eksekusi pekerjaan dimulai. Jika jenis jadwal adalah mingguan atau bulanan, dan parameter @active_start_date diatur ke tanggal di masa lalu, parameter @active_start_date diabaikan dan tanggal saat ini digunakan untuk @active_start_date.
[ @active_end_date = ] active_end_date
Tanggal di mana eksekusi pekerjaan dapat berhenti. @active_end_date int, dengan default 99991231
, yang menunjukkan 31 Desember 9999. Diformat sebagai yyyyMMdd
.
[ @active_start_time = ] active_start_time
Waktu pada setiap hari antara @active_start_date dan @active_end_date untuk memulai eksekusi pekerjaan. @active_start_time int, dengan default 000000
, yang menunjukkan 12:00:00 A.M. pada jam 24 jam, dan harus dimasukkan menggunakan formulir HHmmss
.
[ @active_end_time = ] active_end_time
Waktu setiap hari antara @active_start_date dan @active_end_date untuk mengakhiri eksekusi pekerjaan. @active_end_time int, dengan default 235959
, yang menunjukkan 11:59:59 P.M. pada jam 24 jam, dan harus dimasukkan menggunakan formulir HHmmss
.
[ @owner_login_name = ] 'owner_login_name'
Nama prinsipal server yang memiliki jadwal. @owner_login_name adalah sysname, dengan default NULL
, yang menunjukkan bahwa jadwal dimiliki oleh pembuat.
[ @schedule_uid = ] schedule_uid OUTPUT
Pengidentifikasi unik untuk jadwal. @schedule_uid adalah variabel pengidentifikasi unik jenis.
[ @schedule_id = ] schedule_id OUTPUT
Pengidentifikasi untuk jadwal. @schedule_id adalah variabel jenis int.
[ @originating_server = ] server_name
Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Tataan hasil
Tidak ada.
Keterangan
SQL Server Management Studio menyediakan cara grafis yang mudah untuk mengelola pekerjaan, dan merupakan cara yang direkomendasikan untuk membuat dan mengelola infrastruktur 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
J. Membuat jadwal
Contoh berikut membuat jadwal bernama RunOnce
. Jadwal berjalan satu kali, pada 23:30
hari jadwal dibuat.
USE msdb;
GO
EXEC dbo.sp_add_schedule
@schedule_name = N'RunOnce',
@freq_type = 1,
@active_start_time = 233000;
GO
B. Membuat jadwal, melampirkan jadwal ke beberapa pekerjaan
Contoh berikut membuat jadwal bernama NightlyJobs
. Pekerjaan yang menggunakan jadwal ini dijalankan setiap hari ketika waktu di server adalah 01:00
. Contoh melampirkan jadwal ke pekerjaan BackupDatabase
dan pekerjaan RunReports
.
Catatan
Contoh ini mengasumsikan bahwa pekerjaan BackupDatabase
dan pekerjaan RunReports
sudah ada.
USE msdb;
GO
EXEC sp_add_schedule
@schedule_name = N'NightlyJobs',
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 010000;
GO
EXEC sp_attach_schedule
@job_name = N'BackupDatabase',
@schedule_name = N'NightlyJobs';
GO
EXEC sp_attach_schedule
@job_name = N'RunReports',
@schedule_name = N'NightlyJobs';
GO
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk