Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sửa đổi lịch biểu tác nhân SQL Server (T-SQL)

Lịch biểu của SQL Server Agent có thể được quản lý độc lập với các công việc. Điều này có nghĩa là bạn có thể cập nhật lịch trình trực tiếp mà không cần cập nhật công việc.

Bạn có thể thực hiện việc này với sp_update_schedule thủ tục được lưu trữ.

Ví dụ

Tạo lịch biểu

Đầu tiên, hãy tạo một lịch biểu:

EXEC sp_add_schedule 
    @schedule_name = N'Weekly_Sat_1AM',
    @freq_type = 8,
    @freq_interval = 64,
    @freq_recurrence_factor = 1,
    @active_start_time = 10000;

Bây giờ chúng ta có thể sử dụng sp_update_schedule để sửa đổi lịch trình đó.

Cập nhật lịch biểu

Dưới đây là ví dụ về việc cập nhật lịch biểu mà chúng tôi vừa tạo.

EXEC sp_update_schedule 
    @name = N'Weekly_Sat_1AM',
    @new_name = N'Weekly_Sun_4AM',
    @freq_type = 8,
    @freq_interval = 1,
    @freq_recurrence_factor = 1,
    @active_start_time = 40000;

Trong trường hợp này, tôi đã thay đổi tên của lịch biểu, cũng như khoảng tần suất và thời gian bắt đầu.

Lưu ý rằng sp_update_schedule chỉ thay đổi những cài đặt mà giá trị tham số được cung cấp. Nếu một tham số bị bỏ qua, cài đặt hiện tại sẽ được giữ lại.

Do đó, vì một số cài đặt của chúng tôi vẫn giữ nguyên (cụ thể là @freq_type@freq_recurrence_factor ), chúng tôi có thể đã bỏ qua các tham số đó hoàn toàn.

Như thế này:

EXEC sp_update_schedule 
    @name = N'Weekly_Sat_1AM',
    @new_name = N'Weekly_Sun_4AM',
    @freq_interval = 1,
    @active_start_time = 40000;

Tắt lịch biểu

Bạn có thể đặt @enabled thành 0 để tắt một lịch trình.

Ví dụ:

EXEC sp_update_schedule 
    @name = N'Weekly_Sun_4AM',
    @new_name = N'Weekly_Sun_4AM (DISABLED)',
    @enabled = 0;

Trong ví dụ này, tôi cũng đã thay đổi tên để làm rõ rằng công việc đã bị vô hiệu hóa.

Kiểm tra lịch biểu

Bạn có thể sử dụng sp_help_schedule để xem cài đặt hiện tại của lịch biểu.

Bạn có thể sử dụng nó có hoặc không có tham số. Khi được sử dụng mà không có tham số, nó trả về tất cả các lịch trình.

EXEC sp_help_schedule;

Nếu bạn chỉ muốn xem chi tiết của một lịch biểu, bạn có thể cung cấp tên hoặc ID của lịch biểu đó.

Như thế này:

EXEC sp_help_schedule 
	@schedule_name = 'Weekly_Sun_4AM';

Mặc dù, khi cung cấp tên, bạn sẽ cần nhớ họ mà bạn đã đặt lịch trình. Trong trường hợp của chúng tôi, nếu chúng tôi chạy quy trình này sau ví dụ trước (khi chúng tôi vô hiệu hóa lịch biểu), chúng tôi sẽ cần thực hiện điều này:

EXEC sp_help_schedule 
	@schedule_name = 'Weekly_Sun_4AM (DISABLED)';

Tuy nhiên, ID của lịch biểu vẫn không đổi, vì vậy bạn có thể sử dụng ID đó bất kể tên của lịch biểu là gì.

Ví dụ:

EXEC sp_help_schedule 
	@schedule_id = 16;

Khi sử dụng ID, bạn có thể bỏ qua tên tham số nếu muốn.

Ví dụ:

EXEC sp_help_schedule 16;

Điều gì xảy ra với các công việc sử dụng lịch trình đã sửa đổi?

Tất cả các công việc sử dụng lịch trình ngay lập tức sử dụng cài đặt mới. Tuy nhiên, việc thay đổi lịch biểu không làm dừng các công việc hiện đang chạy.

Cú pháp đầy đủ

Cú pháp đầy đủ của sp_update_schedule như sau:

sp_update_schedule   
    {   [ @schedule_id = ] schedule_id   
      | [ @name = ] 'schedule_name' }  
    [ , [ @new_name = ] 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 = ] 'owner_login_name' ]  
    [ , [ @automatic_post =] automatic_post ]

Xem tài liệu của Microsoft về sp_update_schedule để biết giải thích về từng tham số, cũng như các giá trị mà mỗi tham số chấp nhận.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phân tích cú pháp XML thành SQL Server

  2. Cách đổi tên tên cột hoặc tên bảng trong SQL Server - Hướng dẫn SQL Server / T-SQL Phần 36

  3. Cách hàm RIGHT () hoạt động trong SQL Server (T-SQL)

  4. Cách tìm tất cả vi phạm ràng buộc trong cơ sở dữ liệu máy chủ SQL

  5. Cách đặt giá trị mặc định cho cột hiện có