sp_update_schedule (T-SQL)

Berlaku untuk:SQL Server

Mengubah pengaturan untuk jadwal SQL Server Agent.

Konvensi sintaks transact-SQL

Sintaks

sp_update_schedule
    [ [ @schedule_id = ] schedule_id ]
    [ , [ @name = ] N'name' ]
    [ , [ @new_name = ] N'new_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 = ] N'owner_login_name' ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Argumen

[ @schedule_id = ] schedule_id

Pengidentifikasi jadwal untuk dimodifikasi. @schedule_id int, dengan default NULL.

Baik @schedule_id atau @name harus ditentukan.

[ @name = ] N'name'

Nama jadwal yang akan diubah. @name adalah sysname, dengan default NULL.

Baik @schedule_id atau @name harus ditentukan.

[ @new_name = ] N'new_name'

Nama baru untuk jadwal. @new_name adalah sysname, dengan default NULL. Ketika @new_name NULL, nama jadwal tidak berubah.

[ @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 akan berjalan pada jadwal ini.

[ @freq_type = ] freq_type

Nilai yang menunjukkan kapan pekerjaan akan dijalankan. @freq_type int, dan bisa 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 ketika komputer diam

[ @freq_interval = ] freq_interval

Hari-hari 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 = Minggu
2 = Senin
4 = Selasa
8 = Rabu
16 = Kamis
32 = Jumat
64 = Sabtu
16 (bulanan) Pada hari @freq_interval dalam sebulan.
32 (relatif bulanan) @freq_interval adalah salah satu hal berikut:

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 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.

Value 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 ini.

Value Deskripsi (unit)
1 First
2 Second
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, , 16atau 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 pelaksaan pekerjaan dapat dihentikan. @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.

[ @owner_login_name = ] N'owner_login_name'

Nama prinsipal server yang memiliki jadwal. @owner_login_name adalah sysname, dengan default NULL, yang menunjukkan bahwa jadwal dimiliki oleh pembuat.

[ @automatic_post = ] automatic_post

Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

Semua pekerjaan yang menggunakan jadwal segera menggunakan pengaturan baru. Namun, mengubah jadwal tidak menghentikan pekerjaan yang saat ini berjalan.

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.

Hanya anggota sysadmin yang dapat memodifikasi jadwal yang dimiliki oleh pengguna lain.

Contoh

Contoh berikut mengubah status jadwal yang NightlyJobs diaktifkan menjadi 0 dan mengatur pemilik ke terrid.

USE msdb;
GO

EXEC dbo.sp_update_schedule
    @name = 'NightlyJobs',
    @enabled = 0,
    @owner_login_name = 'terrid';
GO