共用方式為


NSSetQuantumClockDate (Transact-SQL)

將 Microsoft SQL Server Notification Services 應用程式配量時鐘重設為特定時間。當您想設定確切的時間 (如星期一早上 9:00),以便在相同時間間隔內連續執行應用程式來進行測試時,這會很有用。

下列兩個狀況顯示如何使用這個預存程序:

  • 當測試應用程式時,您可以加入一個已排程的訂閱,再依照需要重設配量時鐘來測試這項訂閱。
  • 當診斷系統問題時,您可以重設配量時鐘,再重新產生先前的系統行為。只要執行個體在執行中,且已啟用,就會完全依照真正時間來重新執行所有處理程序 (如事件批次和定時訂閱)。

語法

NSSetQuantumClockDate 
    [ @QuantumStartTime = ] 'start_date_time'

引數

[ @QuantumStartTime = ] 'start_date_time'

這是配量時鐘先前的起始 datetime 值 (以 UTC 表示,國際標準時間)。這會強迫產生器在過去的時間開始一項新的配量,以重新執行先前的處理程序。由於時間在過去,因此,產生器會儘快處理這項配量。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

備註

當您建立執行個體時,Notification Services 會在應用程式資料庫中,建立 NSSetQuantumClockDate 預存程序。當您更新應用程式時,Notification Services 會重新編譯預存程序。

這個預存程序在應用程式定義檔案 (ADF) 的 SchemaName 元素所指定的應用程式結構描述中。如果未提供結構描述名稱,預設結構描述便是 dbo

您必須先停用產生器,才能執行 NSSetQuantumClockDate

NSSetQuantumClockDate 會初始化配量時鐘,因此,在執行這個程序之後,@QuantumStartTime 值會併入產生器所處理的第一項配量內。

若要找到配量開始時間,請使用 NSQuantumList 預存程序。結果集會顯示每項配量的開始時間和結束時間值 (以 UTC 為單位)。

在應用程式定義檔案 (ADF) 中,如果 ChronicleQuantumLimitSubscriptionQuantumLimit 值不是零 (零表示您可以往回處理配量到多遠,並沒有限制),產生器可能會略過您想要的配量。

移除處理會從系統中移除資料。如果您已移除想要的資料,便無法重新執行這項資料的處理程序。

當 Notification Services 嘗試追上先前的配量時,配量愈舊,優先順序愈高,會首先處理。當您初始化配量時鐘時,請注意,新配量的處理可能會晚於排程時間。

權限

執行權限預設會授與 NSGeneratorNSRunService 資料庫角色、db_owner 固定資料庫角色以及系統管理員 (sysadmin) 固定伺服器角色的成員。

範例

下列範例會顯示如何重設配量時鐘,使它在重新執行太平洋白晝時間 2004 年 4 月 23 日上午 9:00 發生的情況。對等的 UTC 時間是 17:00,NSQuantum1 資料表中的 EndTime 資料行顯示先前的配量在 16:59 結束。

應用程式使用預設的 SchemaName 設定,這項設定會將所有應用程式物件放在 dbo 結構描述中。

EXEC dbo.NSSetQuantumClockDate 
    @QuantumStartTime = '2004-04-23 16:59';

請參閱

參考

Notification Services 預存程序 (Transact-SQL)
NSQuantumList (Transact-SQL)

其他資源

Notification Services 效能報告
SchemaName Element (ADF)

說明及資訊

取得 SQL Server 2005 協助