"A dimensão '<named set="" alias="">' não foi encontrado no cubo quando a seqüência de caracteres <named set="" alias="">, foi analisado" Erro ao executar uma consulta MD...

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

2739928
Sintomas
Quando você tenta executar uma consulta MDX (Multidimensional Expressions) em Microsoft SQL Server 2012 SSAS (Analysis Services), você recebe uma mensagem de erro semelhante à seguinte:
A dimensão '<named set="" alias=""></named>' não foi encontrado no cubo quando a seqüência de caracteres, <named set="" alias=""> </named>, foi analisada.

Anotações
  • "Alias do conjunto nomeado"é um espaço reservado para o nome dinâmico que você definiu para a dimensão.
  • A consulta MDX é executada com êxito no SSAS 2008 R2.

Por exemplo, você recebe a mensagem de erro quando você executar a seguinte consulta no banco de dados AdventureWorks SQL Server 2008 R2 no SSAS 2012:
WITH   SET XQE_NS10 AS     Filter    (      [Product].[Product Categories].[Category].MEMBERS     ,        Count        (          Filter          (            CrossJoin            (              [Product].[Product Categories].[Category].MEMBERS             ,[Product].[Status].[Status].MEMBERS            )           ,              (                [Measures].[Reseller Freight Cost]               ,[Date].[Fiscal].[XQE_MDF_CM0]              )            > 20000          )         ,IncludeEmpty        )      > 0    ) /* The named set [XQE_SA0] is defined in context of the COUNT operation */  MEMBER [Date].[Fiscal].[XQE_MDF_CM0] AS     IIF    (        Count        (          Descendants          (            [Geography].[Geography].CurrentMember           ,[Geography].[Geography].[Country]          ) AS [XQE_SA0]         ,IncludeEmpty        )      > 0     ,Aggregate/* [XQE_SA0] is subsequently used in AGGREGATE */      (        [XQE_SA0]       ,[Date].[Fiscal].DefaultMember      )     ,NULL    )   SET XQE_NS0 AS     [Geography].[Geography].[Country].&[Canada] SELECT   {XQE_NS0} ON 0FROM [AdventureWorks]WHERE   [Measures].[Reseller Freight Cost];
Causa
Esse problema ocorre porque um alias é definido em um escopo específico não pode ser referenciado fora do escopo do SSAS 2012.

Observação O vazamento de escopo está habilitado no SSAS 2008 R2. No entanto, ele está desativado no SSAS 2012.
Ponto Da Situação
A Microsoft confirmou que este é um problema nos produtos Microsoft que estão listados na seção "Aplica-se a".
Como contornar
Para contornar esse problema, use um dos seguintes métodos para evitar a referência a um alias que está fora de seu escopo definido em uma consulta MDX no SSAS 2012.

Método 1

Referência de alias dentro de seu escopo definido.

Método 2

Use uma expressão MDX duplicada que representa o alias. Por exemplo, para contornar o problema na situação descrita na seção "Sintomas", você pode substituir o alias [XQE_SA0] com a seguinte expressão:
([Geography].[Geography].CurrentMember,[Geography].[Geography].[Country])
Agora, o seguinte código será executado com êxito:
WITH   SET XQE_NS10 AS     Filter    (      [Product].[Product Categories].[Category].MEMBERS     ,        Count        (          Filter          (            CrossJoin            (              [Product].[Product Categories].[Category].MEMBERS             ,[Product].[Status].[Status].MEMBERS            )           ,              (                [Measures].[Reseller Freight Cost]               ,[Date].[Fiscal].[XQE_MDF_CM0]              )            > 20000          )         ,IncludeEmpty        )      > 0    )   MEMBER [Date].[Fiscal].[XQE_MDF_CM0] AS     IIF    (        Count        (          Descendants          (            [Geography].[Geography].CurrentMember           ,[Geography].[Geography].[Country]          ) AS [XQE_SA0]         ,IncludeEmpty        )      > 0     ,Aggregate      (        Descendants/* instead of referencing [XQE_SA0], substitute the MDX upon which it is based */          (            [Geography].[Geography].CurrentMember           ,[Geography].[Geography].[Country]          )       ,[Date].[Fiscal].DefaultMember      )     ,NULL    )   SET XQE_NS0 AS     [Geography].[Geography].[Country].&[Canada] SELECT   {XQE_NS0} ON 0FROM [AdventureWorks]WHERE   [Measures].[Reseller Freight Cost];
Referências
Para obter mais informações sobre o banco de dados AdventureWorks para SQL Server 2008 R2, vá para o seguinte site da Microsoft CodePlex:

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 2739928 - Última Revisão: 09/25/2012 09:14:00 - Revisão: 1.0

  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Business Intelligence
  • Microsoft SQL Server 2012 Web
  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2739928 KbMtpt
Esta informação foi útil?