Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Buat Jadwal Agen Server SQL dengan T-SQL

Saat menggunakan T-SQL, Anda dapat menggunakan sp_add_schedule prosedur tersimpan untuk menambahkan jadwal SQL Server Agent.

Prosedur ini membuat jadwal, tetapi tidak melampirkannya ke pekerjaan apa pun. Untuk melampirkannya ke pekerjaan, Anda harus menggunakan sp_attach_schedule prosedur.

Anda juga dapat menggunakan sp_add_jobschedule untuk membuat jadwal dan melampirkan semuanya dengan prosedur yang sama.

Contoh sp_add_schedule Prosedur

Berikut ini contoh yang menggunakan sp_add_schedule untuk membuat jadwal baru:

EXEC sp_add_schedule 
    @schedule_name = N'RunDailyAM',
    @freq_type = 4,
    @freq_interval = 4,
    @active_start_time = 041000;
GO

Prosedur tersimpan ini menerima lebih banyak argumen daripada yang saya sertakan dalam contoh ini, tetapi ini adalah beberapa yang lebih umum. Lihat tabel di bawah untuk garis besar nilai yang diterima.

@schedule_name adalah argumen yang diperlukan, tetapi yang lainnya opsional, dan memiliki setelan default jika Anda tidak menyediakannya.

Sekarang kita dapat menggunakan sp_attach_schedule untuk melampirkan jadwal itu ke pekerjaan yang ada:


EXEC sp_attach_schedule  
   @job_name = N'BackupPetHotelDB',  
   @schedule_name = N'RunDailyAM';  
GO

Saat Anda menggunakan sp_attach_schedule , Anda harus memberikan nama pekerjaan atau ID-nya (tetapi tidak keduanya), serta nama jadwal atau ID (tetapi tidak keduanya).

Contoh sp_add_jobschedule Prosedur

Berikut ini contoh yang menggunakan sp_add_jobschedule untuk membuat jadwal baru dan melampirkannya ke pekerjaan, semuanya sekaligus:

EXEC sp_add_jobschedule 
    @job_name = N'BackupMusicDB',
    @name = N'Weekly_Sun_3AM',
    @freq_type = 8,
    @freq_interval = 1,
    @freq_recurrence_factor = 1,
    @active_start_time = 30000;

Dengan prosedur ini @job_name argumen memberikan nama pekerjaan, dan @name argumen memberikan nama yang ingin Anda berikan ke jadwal.

Nilai Parameter

Cara data jadwal disimpan di msdb database membuatnya sedikit rumit saat menjadwalkan pekerjaan dengan T-SQL.

Nilai tanggal/waktu disimpan sebagai int jenis. Jenis frekuensi dinyatakan sebagai int , seperti nilai interval, dan berbagai opsi lainnya.

Di bawah ini adalah ikhtisar nilai yang diterima untuk parameter yang diberikan dalam contoh di atas.

@freq_type

Argumen ini menentukan kapan suatu pekerjaan akan dieksekusi. Ia menerima nilai-nilai berikut:

Nilai Deskripsi
1 Sekali
4 Harian
8 Mingguan
16 Bulanan
32 Bulanan, relatif terhadap freq_interval
64 Jalankan saat layanan Agen SQL dimulai
128 Jalankan saat komputer idle

@freq_interval

Argumen ini menentukan hari-hari ketika suatu pekerjaan dieksekusi.

Argumen ini bergantung pada nilai @freq_type argumen, seperti diuraikan dalam tabel berikut:

Nilai freq_type Efek pada freq_interval
1 (sekali) freq_interval tidak digunakan.
4 (setiap hari) Setiap freq_interval hari.
8 (mingguan) freq_interval adalah satu atau lebih dari berikut ini (dikombinasikan dengan OR operator logika):

1 (Minggu)

2 (Senin)

4 (Selasa)

8 (Rabu)

16 (Kamis)

32 (Jumat)

64 (Sabtu)
16 (bulanan) Pada freq_interval hari dalam sebulan.
32 (kerabat bulanan) freq_interval adalah salah satu dari berikut ini:

1 (Minggu)

2 (Senin)

3 (Selasa)

4 (Rabu)

5 (Kamis)

6 (Jumat)

7 (Sabtu)

8 (Hari)

9 (Hari kerja)

10 (Hari akhir pekan)
64 (ketika layanan SQLServerAgent dimulai) freq_interval tidak digunakan.
128 freq_interval tidak digunakan.

@freq_recurrence_factor

Ini menentukan jumlah minggu atau bulan antara jadwal pelaksanaan pekerjaan.

Ini adalah int , dengan default 0 , dan hanya digunakan jika freq_type adalah 8 , 16 , atau 32 .

@active_start_time

Menentukan waktu pada setiap hari antara @active_start_date dan @active_end_date argumen untuk memulai eksekusi pekerjaan. @active_start_time adalah int , dengan default 000000 , yang menunjukkan pukul 12:00:00 A.M. pada 24 jam, dan harus dimasukkan menggunakan formulir HHMMSS.

@active_start_date

Meskipun tidak termasuk dalam contoh saya di atas, @active_start_date argumen memungkinkan Anda untuk menentukan tanggal eksekusi pekerjaan dapat dimulai. Ini adalah int , dengan default NULL, yang menunjukkan tanggal hari ini. Tanggal diformat sebagai YYYYMMDD.

@active_end_date

Anda juga dapat memberikan @active_end_date argumen, yang menentukan tanggal eksekusi pekerjaan dapat dihentikan.

@active_end_date adalah int , dengan default 99991231 , yang menunjukkan 31 Desember 9999. Tanggal diformat sebagai YYYYMMDD.

Info Lebih Lanjut

Lihat dokumentasi Microsoft untuk sp_add_schedule dan/atau dokumentasi Microsoft untuk sp_add_jobschedule untuk detail lebih lanjut tentang berbagai argumen dan nilai yang diterimanya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemicu untuk mencegah Penyisipan untuk data duplikat dari dua kolom

  2. Pengantar Keamanan Tingkat Baris di SQL Server

  3. Gunakan OBJECTPROPERTY() untuk Mengetahui apakah Tabel adalah Tabel Sistem di SQL Server

  4. Cara Memindahkan File Data di SQL Server – Bagian 1

  5. Grup Ketersediaan AlwaysOn SQL Server:Instalasi dan Konfigurasi. Bagian 2