SQL Server 2012 中 Analysis Services 功能的重大變更
本主題描述 SQL Server 2012 Analysis Services (SSAS) 中的突破性變更。 這些變更可能會中斷以舊版 SQL Server 為基礎的應用程式、指令碼或功能。
本主題內容:
Breaking Changes in SQL Server 2012 SP1
Breaking Changes in SQL Server 2012
Breaking Changes in SQL Server 2008 and SQL Server 2008 R2
SQL Server 2012 SP1 中的中斷變更
已知全球化相關程式碼的變更會中斷某些應用程式。 已知問題包括:
物件識別碼的區分大小寫
若變更程式碼讓所有的物件識別碼不區分大小寫,將會對某些語言造成反效果。 其目的是不論定序為何,所有物件識別碼都不區分大小寫。 這項變更可讓 Analysis Services 搭配通常用於相同方案堆疊中的其他應用程式使用。目前對於使用 26 個字元之基本拉丁字母的語言來說,物件識別碼尚不會區分大小寫,這是預期的行為。
若為斯拉夫文和使用大小寫的複合字集 (希臘文、亞美尼亞文和科普特文),物件識別碼現在會區分大小寫。 當物件識別碼與其參考方式 (例如參考全部小寫之物件識別碼的處理指令碼) 之間有大小寫差異時,很有可能會發生中斷變更。 這種行為未來可能會改變,但為了暫時解決這個問題,建議修改指令碼,使用與物件識別碼相同的大小寫。
SQL Server 2012 中的重大變更
本章節記載針對 SQL Server 2012 中 SQL Server 2012 Analysis Services (SSAS) 功能所報告的重大變更。
問題 |
描述 |
---|---|
字串對布林值的比較現在傳回錯誤 |
在舊版中,比較字串與布林值的 MDX 查詢原本會傳回結果,即使這兩種值根本無法比較。 在這一版中,比較作業現在要求兩個值具有相同類型。 如果您的應用程式包含的 MDX 查詢會比較不同類型的值,則會傳回錯誤,而不是結果。 |
已針對 PowerPivot for SharePoint 安裝移除安裝命令。 |
安裝程式會安裝 PowerPivot for SharePoint,但是不再設定。 現在已經移除用於組態動作之收集值的安裝命令。 其中包括 /FARMACCOUNT、/FARMPASSWORD、/PASSPHRASE 和 /FARMADMINPORT。 如果您已經針對自動安裝建立安裝指令碼,您需要為 PowerPivot for SharePoint 安裝修改這些指令碼。 替代方法是使用 PowerShell 指令程式,在自動安裝模式下設定伺服器。 如需詳細資訊,請參閱<從命令提示字元安裝 PowerPivot>和<使用 Windows PowerShell 的 PowerPivot 組態>。 |
DAX 中的 DATESBETWEEN 函數會強制執行當做引數參考的日期資料行的唯一值。 |
SQL Server 2012 SP1 引進 DATESBETWEEN 函數的新驗證需求。 如果當做引數參考的日期資料行不包含唯一值,則使用 DATESBETWEEN 時間智慧函數的 DAX 公式可能會傳回錯誤。 所有 DAX 時間智慧函數中,當做第一個引數參考的日期資料行必須包含每個資料列的唯一值。 |
在 DAX 公式中使用比較運算子與不相容資料類型的值。 |
在 SQL Server 2012,可以在 DAX 公式中使用比較運算子來比較字串值與整數值,例如字串值 “45” 與整數 45。 這會產生有效的比較。 在 SQL Server 2012 SP1,為了強制執行算術規則,不再允許字串轉換成整數。 比較字串值與整數值的公式會傳回錯誤。 您可以使用 DAX 轉換函數 VALUE、FORMAT,將值轉換成另一種類型。 |
在 DAX 公式中使用次序函數比較空白值與空字串 ("")。 |
在 SQL Server 2012 中,DAX 次序函數會將 BLANK() 與數值資料行中的 0 排在相同順位,並將 BLANK() 與文字資料行中的空字串排在相同順位。 在 SQL Server 2012 SP1,DAX 次序函數會將 BLANK() 與數值資料行中的 0 排在相同順位,但不再將 BLANK() 與文字資料行中的空字串排在相同順位。 BLANK() 排在鄰接空字串的順位,但略小。 |
Top
SQL Server 2008/SQL Server 2008 R2 中的重大變更
本節包含不同於舊版的重大變更。 如果您是從 SQL Server 2005 升級,則應該檢閱 SQL Server 2008 和 SQL Server 2008 R2 中導入的重大變更。
問題 |
描述 |
---|---|
shallow exists 函數現在會以不同的方式使用包含列舉集之列舉成員或交叉聯結的命名集。 |
在 SQL Server 2005 Analysis Services (SSAS) 中,shallow exists 函數無法與包含列舉集之列舉成員或交叉聯結的具名集搭配使用。若要與原始發行版本和 SQL Server 2005 Analysis Services (SSAS) SP1 相容,請將組態屬性 "ConfigurationSettings\OLAP\Query\NamedSetShallowExistsMode" 設定為 1,若要與 SQL Server 2005 Analysis Services (SSAS) SP2 相容,則將該屬性設定為 2。 |
VBA 函數處理 Null 值和空白值的方式與 SQL Server 2005 Analysis Services (SSAS) Analysis Services 的處理方式不同。 |
在 SQL Server 2005 Analysis Services (SSAS) 中,當 Null 值或空白值當做引數使用時,VBA 函數原本會傳回 0 或空字串。 在 SQL Server 2008 中,它們將會傳回 Null。 |
移轉精靈將會失敗,因為 DSO 依預設並未安裝。 |
依預設,SQL Server 2008 並不會安裝 DSO (決策支援物件) 回溯相容性元件。 回溯相容性封裝依預設會安裝,但該封裝的 DSO 元件將會停用。 因為 SQL Server Analysis Services 移轉精靈相依於這個元件,所以除非安裝這個元件,否則此精靈將會失敗。 若要安裝 DSO 元件,請執行下列動作:
您可以遵照前述步驟,將 DSO 的選項變更為 [此功能將無法使用],以在移轉完成之後移除 DSO。 如果回溯相容性封裝未安裝,您可以從 SQL Server 2008 散發媒體加以安裝。 請注意,有適用於每一個目標架構 (x86、x64,ia64) 的版本。 這些版本可以從下列位置取得: x86\Setup\x86\SQLServer2005_BC.msi x64\Setup\x64\SQLServer2005_BC.msi ia64\Setup\ia64\SQLServer2005_BC.msi |
建議您不要在 [資料] 資料夾中放置資料分割位置。 |
伺服器會管理 [資料] 資料夾,並在建立、刪除和更改物件時,建立或卸除資料夾。 因此,強烈建議您不要在 [資料] 資料夾內指定資料分割儲存體位置,特別是在資料庫、Cube 和維度的子資料夾中。 雖然伺服器可以讓您透過 Create 或 Alter 進行這項作業,但這麼做會顯示警告訊息。 當您將資料庫從 SQL Server 2005 Analysis Services 升級至在 [資料] 資料夾中具有資料分割儲存體位置的 SQL Server 2008 Analysis Services 時,該作業會成功。 Restore 或 Sync 會要求您將資料分割儲存體位置移到 [資料] 資料夾之外。 |
如果是在 ProClarity Analytics Server 和 Microsoft Office PerformancePoint Server 2007 中使用 "EXISTING" MDX 關鍵字的查詢,則可能會獲得非預期的結果。 |
在特定的狀況下,ProClarity Analytics Server 和 Microsoft Office PerformancePoint Server 2007 會錯誤地使用 MDX 的 "EXISTING" 關鍵字。 由於 SQL Server 2008 Analysis Services 中所做的變更之緣故,這些查詢可能會傳回非預期的結果。 |
Top