Share via


sp_update_schedule (Transact-SQL)

更新: 2008 年 11 月 17 日

變更 SQL Server Agent 排程的設定。

語法

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 ]

引數

  • [ @schedule_id = ] schedule_id
    這是要修改之排程的識別碼。schedule_idint,沒有預設值。您必須指定 schedule_idschedule_name 其中之一。
  • [ @name = ] 'schedule_name'
    這是要修改之排程的名稱。schedule_namesysname,沒有預設值。您必須指定 schedule_idschedule_name 其中之一。
  • [ @new_name= ] new_name
    排程的新名稱。new_namesysname,預設值是 NULL。當 new_name 是 NULL 時,排程的名稱會維持不變。
  • [ @enabled = ] enabled
    指出排程目前的狀態。enabledtinyint,預設值是 1 (已啟用)。如果是 0,就表示未啟用排程。當未啟用排程時,不會依據這份排程來執行任何作業。
  • [ @freq_type = ] freq_type
    這個值指出將執行作業的時間。freq_typeint,預設值是 0,它可以是下列值之一。

    描述

    1

    一次

    4

    每日

    8

    每週

    16

    每月

    32

    每月,相對於 freq interval

    64

    在 SQLServerAgent 服務啟動之時執行

    128

    在電腦閒置之時執行

  • [ @freq_interval = ] freq_interval
    執行作業的天數。freq_intervalint,預設值是 0;它會隨著 freq_type 的值而不同。

    freq_type 的值 freq_interval 的作用

    1 (一次)

    freq_interval 未使用。

    4 (每天)

    每隔 freq_interval 天。

    8 (每週)

    freq_interval 是下列一或多項 (以 OR 邏輯運算子結合):

    1 = 星期日

    2 = 星期一

    4 = 星期二

    8 = 星期三

    16 = 星期四

    32 = 星期五

    64 = 星期六

    16 (每月)

    在當月的第 freq_interval 天。

    32 (每月相對)

    freq_interval 是下列其中一項:

    1 = 星期日

    2 = 星期一

    3 = 星期二

    4 = 星期三

    5 = 星期四

    6 = 星期五

    7 = 星期六

    8 = 每週日期

    9 = 工作日

    10 = 週末

    64 (當 SQLServerAgent 服務啟動時)

    freq_interval 未使用。

    128

    freq_interval 未使用。

  • [ @freq_subday_type = ] freq_subday_type
    指定 freq_subday_interval 的單位。freq_subday_typeint,預設值是 0,它可以是下列值之一。

    描述 (單位)

    0x1

    在指定的時間

    0x2

    0x4

    分鐘

    0x8

    小時

  • [ @freq_subday_interval = ] freq_subday_interval
    在各次執行作業之間發生的 freq_subday_type 週期數。freq_subday_intervalint,預設值是 0
  • [ @freq_relative_interval = ] freq_relative_interval
    如果 freq_interval32 (每月相對),便會在每月的 freq_interval 發生作業。freq_relative_intervalint,預設值是 0,它可以是下列值之一。

    描述 (單位)

    1

    第一個

    2

    第二個

    4

    第三個

    8

    第四個

    16

    最後一個

  • [ @freq_recurrence_factor = ] freq_recurrence_factor
    作業的各排程執行之間的週數或月數。如果 freq_type81632,則使用 freq_recurrence_factorfreq_recurrence_factorint,預設值是 0
  • [ @active_start_date = ] active_start_date
    可以開始執行作業的日期。active_start_dateint,預設值是 NULL,表示今天的日期。日期格式為 YYYYMMDD。如果 active_start_date 不是 NULL,這個日期就必須大於或等於 19900101。

    建立排程之後,請檢閱開始日期並確認它是正確的日期。如需詳細資訊,請參閱<建立排程>中的<排程開始日期>一節。

  • [ @active_end_date = ] active_end_date
    可以開始執行作業的日期。active_end_dateint,預設值是 99991231,表示 9999 年 12 月 31 日。格式為 YYYYMMDD。
  • [ @active_start_time = ] active_start_time
    active_start_dateactive_end_date 之間的任何一天,開始執行作業的時間。active_start_timeint,預設值是 000000,表示 24 小時制的上午 12:00:00,必須用 HHMMSS 格式來輸入。
  • [ @active_end_time = ] active_end_time
    active_start_dateactive_end_date 之間的任何一天,結束執行作業的時間。active_end_timeint,預設值是 235959,表示 24 小時制的下午 11:59:59,必須用 HHMMSS 格式來輸入。
  • [ @owner_login_name= ] 'owner_login_name']
    擁有排程之伺服器主體的名稱。owner_login_namesysname,預設值是 NULL,表示排程是建立者所擁有。
  • [ @automatic_post =] automatic_post
    已保留。

傳回碼值

0 (成功) 或 1 (失敗)

備註

所有使用排程的作業都會立即使用新設定。不過,變更排程並不會停止目前在執行中的作業。

權限

依預設,只有系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行這個預存程序。其他使用者必須被授與 msdb 資料庫的下列其中一個 SQL Server Agent 固定資料庫角色。

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

如需有關這些角色權限的詳細資料,請參閱<SQL Server Agent 固定資料庫角色>。

只有系統管理員 (sysadmin) 的成員可以修改另一位使用者所擁有的排程。

範例

下列範例會將 NightlyJobs 排程的啟用狀態改成 0,並將擁有者設為 terrid

USE msdb ;
GO

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

請參閱

參考

sp_add_schedule (Transact-SQL)
sp_delete_schedule (Transact-SQL)
sp_help_schedule (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2008 年 11 月 17 日

變更的內容:
  • 新增有關 @active_start_date 的資訊。