KB2490555-修正:如果上班時間設定為結束下一天,則在 SQL Server 2008 R2 for SharePoint 中不會每天進行資料更新

適用於: SQL Server 2008 R2

Microsoft 將 Microsoft SQL Server 2008 R2 發佈為一個可下載的檔案。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2008 R2 修正程式版本中所包含的所有修復程式及所有安全性修正程式。

徵狀


請試想下列案例:
  • 您在電腦上安裝並設定 Microsoft SQL Server 2008 R2 PowerPivot for SharePoint。
  • 您可以將 Excel PowerPivot 活頁簿發佈或上傳到 PowerPivot 圖庫。
  • 您可以設定 PowerPivot 服務應用程式設定,以定義跨越一天邊界的上班時間。 例如,您指定的是工作日的開始時間到 6:00 am ,以及下一天 2:00 AM 的結束時間。
  • 您啟用活頁簿的資料更新。 
  • 您將資料更新排程為每天執行,以及在營業 時間最早的開始時間。
在這種情況下,資料會每隔一天(而不是每天)更新一次。

原因


發生這個問題的原因是 Microsoft SQL Server PowerPivot for SharePoint 處理下一個排程無法正確執行。

解決方案


累積更新資訊

SQL Server 2008 R2

此問題的修正程式是在累積更新6中第一次發行。如需有關如何取得 SQL Server 2008 R2 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2489376 SQL Server 2008 R2 的累積更新套件6
注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
981356 在發行 SQL Server 2008 R2 之後發行的 SQL Server 2008 R2 組建

因應措施


若要解決此問題,請在符合下列其中一個條件時套用累計更新:
  • 您沒有 PowerPivot 服務應用程式。
  • 您可以刪除現有的 PowerPivot 服務應用程式,然後再建立一個新的記錄。 
如果您已經有 PowerPivot 服務應用程式,且您無法除去並建立新的 PowerPivot 服務應用程式,請執行下列 Transact-sql 腳本來解決此問題。 此腳本會更新 [DataRefresh]。 [ 針對 PowerPivot 服務應用程式資料庫的 ProcessNextScheduledRun] 預存程序。
IF OBJECT_ID ( '[DataRefresh].[ProcessNextScheduledRun]', 'P' ) IS NOT NULL     DROP PROCEDURE [DataRefresh].[ProcessNextScheduledRun];GO-- The caller should update the [NextProcessDate] and set the status to 'P'.CREATE PROCEDURE [DataRefresh].[ProcessNextScheduledRun]@AllotedServerName [nvarchar] (256)ASDECLARE @CurrentTime datetime;DECLARE @CurrentDate datetime;SET @CurrentTime = GETDATE();SET @CurrentDate = [DataRefresh].[DateOnly](@CurrentTime);SET @CurrentTime = [DataRefresh].[TimeOnly](@CurrentTime);-- Caller will calculate virtual run window and cancel the run that missed it.UPDATE [DataRefresh].[Runs] SET [RunStartTime]=GETDATE(), ResultKey='Q', ServerName=@AllotedServerNameOUTPUT inserted.*WHERE [RunID] in (SELECT TOP 1 [RunID]FROM [DataRefresh].[Runs] WHERE ResultKey='W'AND ((-- AfterBusinessHour cases that haven't been loaded to verify IT overridden business hours.-- To handle IT overridden business hours, we will process after business hours schedules immediately -- and set [ProcessStartTime] and [ProcessEndTime] for the schedule and create other schedules if it is necessary.[ProcessStartTime] IS NULL ) OR(-- None AfterBusinessHour casesProcessEndTime IS NULL AND ( @CurrentTime>=[DataRefresh].[TimeOnly]([ProcessStartTime]) OR DATEDIFF(Day, ProcessDate, @CurrentDate)>=1))OR (-- BusinessHours setting crosses the day boundary.[DataRefresh].[TimeOnly]([ProcessStartTime])<[DataRefresh].[TimeOnly]([ProcessEndTime])AND (DATEDIFF(Day, ProcessDate, @CurrentDate)>1 OR(DATEDIFF(Day, ProcessDate, @CurrentDate)>=0 AND @CurrentTime>=[DataRefresh].[TimeOnly]([ProcessStartTime]))))OR(-- BusinessHours setting within the day boundary.[DataRefresh].[TimeOnly]([ProcessStartTime])>[DataRefresh].[TimeOnly]([ProcessEndTime])AND ( @CurrentTime>=[DataRefresh].[TimeOnly]([ProcessStartTime]) OR DATEDIFF(Day, ProcessDate, @CurrentDate)>=1))-- The following case has been coverred.--OR--(---- Very old runs that haven't been picked up.--DATEDIFF(Day, ProcessDate, @CurrentDate)>1--))ORDER BY [ProcessDate] ASC)GOGRANT EXECUTE ON [DataRefresh].[ProcessNextScheduledRun] TO [GeminiService_DataRefresh]GO

狀態


Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

參考


如需有關如何建立和設定 PowerPivot 服務應用程式的詳細資訊,請造訪下列 Microsoft 開發人員網路(MSDN)網站: 如需有關如何排程 PowerPivot 資料更新的詳細資訊,請造訪下列 Microsoft 開發人員網路(MSDN)網站: 如需有關 SQL Server 的增量服務模型的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
935897 您可以從 SQL Server 團隊取得增量服務模型,以提供已報告問題的修補程式
如需 SQL Server 更新命名架構的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
822499 Microsoft SQL Server 軟體更新套件的新命名架構
如需軟體更新術語的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
824684 描述 Microsoft 軟體更新所使用的標準術語說明