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 cmdlet 将服务器配置为无人参与模式。 有关详细信息,请参阅 从命令提示符安装 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 中的排名函数在数字列中用 0 对 BLANK() 进行排名,在文本列中用空字符串对 BLANK() 进行排名。 在 SQL Server 2012 SP1 中,DAX 中的排名函数在数字列中用 0 对 BLANK() 进行排名,但在文本列中不再用空字符串对 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) 中的方式有所不同。 |
在 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 |
不建议将分区位置放置在 Data 文件夹中。 |
服务器管理 Data 文件夹,并将在创建、删除和更改对象时创建或删除相应文件夹。 因此,强烈建议不要在 Data 文件夹内指定分区存储位置,尤其是不要在数据库、多维数据集和维度的子文件夹中指定。 尽管服务器允许您使用 Create 或 Alter 命令来执行此操作,但它会显示警告。 如果您将 Data 文件夹中包含有分区存储位置的数据库从 SQL Server 2005 Analysis Services 升级到 SQL Server 2008 Analysis Services,则此升级操作将成功完成。 还原或同步操作将需要您将分区存储位置移出 Data 文件夹。 |
您可能会从在 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