CORRECÇÃO: mensagem de erro "a expressão contém uma função que não pode funcionar em conjunto com cadeias de identificação mais do que 4294967296" ocorre quando tenta executar uma consulta MDX no SSAS 2008 ou no SSAS 2008 R2


A Microsoft distribui Microsoft SQL Server 2008 Service Pack 1 (SP1) ou SQL Server 2008 R2 corrige como um ficheiro para transferência. Uma vez que as correcções são cumulativas, cada nova versão inclui todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o SQL Server 2008 Service Pack 1 (SP1) ou o SQL Server 2008 R2 anterior.

Sintomas


Considere o seguinte cenário:
  • Tem uma consulta de Multidimensional Expressions (MDX) que satisfaça as seguintes condições no Microsoft SQL Server 2008 Analysis Services (SSAS) 2008 ou no Microsoft SQL Server 2008 R2 Analysis Services (SSAS) 2008 R2:
    • A consulta utiliza a função CROSSJOIN.
    • A expressão da consulta tem mais de dois conjuntos de argumento que são compostos por cadeias de identificação de hierarquias de atributo diferentes na mesma dimensão.
    • Estes conjuntos são separados por outro conjunto é composto por cadeias de identificação de outra dimensão.
    • O resultado teórico definida para a função CROSSJOIN é normalmente tuples mais do que 4294967296.
      Por exemplo, ter uma consulta MDX que contém o seguinte:
      WITH SET S AS CROSSJOIN([Product].[Large Photo].[Large Photo], [Customer].[Customer].[Customer], [Product].[Product].[Product])SELECT {} ON 0,
      S.ITEM(1) ON 1
      FROM [Adventureworks]
  • Tente executar a consulta.
Neste cenário, a consulta não é executado. Além disso, recebe a seguinte mensagem de erro:
A expressão contém uma função que não pode funcionar em conjunto com cadeias de identificação mais do que 4294967296.
Nota Este tipo de consulta MDX pode ser gerado automaticamente por uma tabela dinâmica do Excel.

Resolução


Informações de actualização cumulativa

SQL Server 2008 SP1

A correcção para este problema foi originalmente lançada em 11 de actualização cumulativa. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 Service Pack 1 (SP1), clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2413738 cumulativo pacote 11 de actualizações do SQL Server 2008 Service Pack 1
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o anterior SQL Server 2008 Service Pack 1 (SP1). Recomendamos que pense em aplicar a edição de correcção mais recente que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft
970365 o SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008 Service Pack 1

SQL Server 2008 R2

A correcção para este problema foi primeiro disponibilizada em 5 de actualização cumulativa. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 R2, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
Pacote de actualização cumulativa de 2438347 5 para o SQL Server 2008 R2
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o SQL Server 2008 R2 anterior. Recomendamos que pense em aplicar a edição de correcção mais recente que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft
981356 o SQL Server 2008 R2 cria disponibilizadas após o lançamento do SQL Server 2008 R2

SQL Server 2008 Service Pack 2

A correcção deste problema primeiro foi disponibilizada em 2 de actualização cumulativa para o SQL Server 2008 Service Pack 2. Para mais informações sobre este pacote de actualização cumulativa, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2467239 cumulativo pacote 2 de actualizações do SQL Server 2008 Service Pack 2
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas no anterior do SQL Server 2008. A Microsoft recomenda que pense em aplicar a edição de correcção mais recente que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft
2402659 o SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008 Service Pack 2
Correcções do Microsoft SQL Server 2008 são criadas para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2008 Service Pack 2 para uma instalação do SQL Server 2008 Service Pack 2. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.

Solução alternativa


Para contornar este problema, utilize uma expressão que tem dois atributos adjacentes da mesma dimensão na consulta. Por exemplo, a consulta MDX contém o seguinte:
WITH SET S AS CROSSJOIN([Product].[Large Photo].[Large Photo], [Product].[Product].[Product], [Customer].[Customer].[Customer])SELECT {} ON 0,
S.ITEM(1) ON 1
FROM [Adventureworks]


Estado


A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".