Breaking Changes to Analysis Services Features in SQL Server 2012

This topic describes breaking changes in SQL Server 2012 Analysis Services (SSAS). These changes might break applications, scripts, or functionalities that are based on earlier versions of SQL Server.

In this topic:

  • Breaking Changes in SQL Server 2012 SP1

  • Breaking Changes in SQL Server 2012

  • Breaking Changes in SQL Server 2008 and SQL Server 2008 R2

Breaking Changes in SQL Server 2012 SP1

Globalization-related code changes have been known to break some applications. Known issues include:

  • Case-sensitivity of object identifiers
    A code change intended to make all object identifiers case-insensitive is having the opposite effect for some languages. The intention is that all object identifiers will be case-insensitive, regardless of collation. This change aligns Analysis Services with other applications typically used in the same solution stack.

    For languages based on the 26 characters of the basic Latin alphabet, object identifiers are now case insensitive, which is the intended behavior.

    For Cyrillic and other bicameral language scripts that use casing (Greek, Armenian, and Coptic), object identifiers are now case-sensitive. Breaking changes are most likely to occur when there is case difference between an object identifier and how it is referenced (for example, a processing script that refers to the object identifier in all lower-case). This behavior is likely to change in the future, but as a temporary workaround, we suggest modifying scripts to use the same case as the object identifier.

Breaking Changes in SQL Server 2012

This section documents the breaking changes reported for SQL Server 2012 Analysis Services (SSAS) features in SQL Server 2012.

Issue

Description

String-to-Boolean comparisons now return errors

In previous releases, an MDX query that compared strings to Boolean values would return a result, even though the values were not comparable. In this release, comparisons now require that both values are of the same type. If your application includes MDX queries that compare values of different types, an error will be returned instead of a result.

Setup commands removed for a PowerPivot for SharePoint installation.

Setup installs, but no longer configures, a PowerPivot for SharePoint. Setup commands that collected values used for configuration actions are now removed. These include /FARMACCOUNT, /FARMPASSWORD, /PASSPHRASE, and /FARMADMINPORT.

If you created installation scripts for unattended setup, you will need to modify those scripts for a PowerPivot for SharePoint installation. The alternative is to use PowerShell cmdlets to configure the server in unattended mode. For more information, see Install PowerPivot from the Command Prompt and Use Windows PowerShell to Configure PowerPivot.

DATESBETWEEN Function in DAX enforces unique values in date column referenced as an argument.

SQL Server 2012 SP1 introduces new validation requirements for the DATESBETWEEN function.

DAX formulas using the DATESBETWEEN time-intelligence function may return an error if the date column referenced as the argument does not contain unique values. Date columns referenced as the first argument for all DAX time-intelligence functions must contain a unique value for each row.

Using comparison operators in DAX formulas with values of incompatible data types.

In SQL Server 2012, in a DAX formula, it is possible to use a comparison operator to compare a string value with an integer value; for example a string value of “45” with the integer 45. This resulted in a valid comparison. In SQL Server 2012 SP1, in order to enforce arithmetic rules, string to integer coercion is no longer allowed. Formulas comparing a string value with an integer value will return an error. You can use DAX cast functions, VALUE, FORMAT to convert a value to another type.

Using ranking functions in DAX formulas to compare blank values to an empty string ("").

In SQL Server 2012, the ranking functions in DAX rank BLANK() with 0 in numeric columns and rank BLANK() with the empty string in text columns. In SQL Server 2012 SP1, the ranking functions in DAX rank BLANK() with 0 in numeric columns, but no longer rank BLANK() with the empty string in text columns. BLANK() is ranked adjacent to, and as slightly smaller than, the empty string.

Arrow icon used with Back to Top linkTop

Breaking Changes in SQL Server 2008/SQL Server 2008 R2

This section contains the breaking changes from previous releases. If you are upgrading from SQL Server 2005, you should review the breaking changes that were introduced in SQL Server 2008 and SQL Server 2008 R2.

Issue

Description

The shallow exists function now works differently with named sets that contain enumerated members or crossjoins of enumsets.

In SQL Server 2005 Analysis Services (SSAS), the shallow exists function did not work with named sets that contained enumerated members or crossjoins of enumsets. For backward compatibility with the original release version and SP1 of SQL Server 2005 Analysis Services (SSAS), set the configuration property "ConfigurationSettings\OLAP\Query\NamedSetShallowExistsMode" to 1, or for backward compatibility with SQL Server 2005 Analysis Services (SSAS) SP2, set it to 2.

VBA functions handle null values and empty values differently than they were handled in SQL Server 2005 Analysis Services (SSAS) 

In SQL Server 2005 Analysis Services (SSAS), VBA functions returned 0 or an empty string when either null values or empty values were used as arguments. In SQL Server 2008, they will return null.

The Migration Wizard will fail because DSO is not installed by Default.

By default, SQL Server 2008 does not install the DSO (Decision Support Objects) backward compatibility component. The backward compatibility package is installed by default but the DSO component of the package will be disabled. Since the SQL Server Analysis Services Migration Wizard relies on this component, it will fail unless the component is installed. To install the DSO component, do the following:

  1. Open Control Panel.

  2. In Windows XP or Windows Server 2003, select Add or Remove Programs. In Windows Vista and Windows Server 2008, select Programs and Features.

  3. Right-click Microsoft SQL Server 2005 Backward Compatibility, and select Change.

  4. In the Backward Compatibility Setup wizard, click Next.

  5. On the Program Maintenance page, select Modify, and then click Next.

  6. On the Feature Selection page, if Decision Support Objects (DSO) is not available, click the down arrow and select This feature will be installed on local hard drive. Click Next.

  7. On the Ready to Modify the Program page, click Install.

  8. When installation is finished, click Finish.

You can remove DSO after migration is complete by following the previous steps, changing the option for DSO to “This feature will not be available.”

If the backward compatibility package is not installed, you can install it from the SQL Server 2008 distribution media. Note that there are versions for each target architecture (x86, x64, ia64). These versions can be found at the following locations:

x86\Setup\x86\SQLServer2005_BC.msi

x64\Setup\x64\SQLServer2005_BC.msi

ia64\Setup\ia64\SQLServer2005_BC.msi

It is not recommended to put the partition location in the Data folder.

The server manages the Data folder and creates or drops folders as objects are created, deleted, and altered. Therefore, specifying a partition storage location inside the Data folder is strongly discouraged, especially in the subfolders for databases, cubes, and dimensions. Although the server allows you to do this with Create or Alter, it will display a warning. When you upgrade databases from SQL Server 2005 Analysis Services to SQL Server 2008 Analysis Services that have partition storage locations in the Data folder, it will work. Restore or Sync will require that you move partition storage locations outside the Data folder.

You might get unexpected results for queries that use the "EXISTING" MDX keyword in ProClarity Analytics Server and Microsoft Office PerformancePoint Server 2007.

ProClarity Analytics Server and Microsoft Office PerformancePoint Server 2007 use the EXISTING keyword in MDX incorrectly in certain scenarios. Due to changes made in SQL Server 2008 Analysis Services, these queries might return unexpected results.

Arrow icon used with Back to Top linkTop

See Also

Other Resources

Analysis Services Backward Compatibility