KB2606211 – KORJAUS: Virhe, kun monimutkaisessa MDX-kyselyssä on NONEMPTY-lause SSAS 2008 R2:ssa tai SSAS 2012:ssa, jos WHERE-lauseella on nimetty joukko

Käytetään kohteeseen
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web

Microsoft jakelee Microsoft SQL Server 2008 R2 Service Pack 1 (SP1)- tai Microsoft SQL Server 2012 -korjaukset yhtenä ladattavana tiedostona. Koska korjaukset ovat kumulatiivisia, jokainen uusi versio sisältää kaikki aiempiin SQL Server 2008 R2 Service Pack 1 (SP1)- tai SQL Server 2012 -päivitysjulkaisuihin sisältyvät hotfix-korjaukset ja tietoturvapäivitykset.

Ongelman ilmenemistapa

Mieti seuraavaa tilannetta:

  • Suoritat monimutkaisen moniulotteiseen lausekkeeseen (MDX) liittyvän kyselyn Microsoft SQL Server 2008 R2 Analysis Services (SSAS 2008 R2) -esiintymässä tai Microsoft SQL Server 2012 Analysis Services (SSAS 2012) -esiintymässä.

  • Seuraavat ehdot täyttyvät MDX-kyselyssä:

    • MDX-kysely käyttää NONEMPTY-funktiota.
    • MDX-kyselyn WHERE-lauseella on nimetty joukko.
    • MDX-kyselyn akselijoukko ja nimetty joukko käyttävät samojen dimensioiden hierarkioita.

Tässä skenaariossa näyttöön saattaa tulla seuraava virhesanoma:

Huomautus

Lauseke sisältää funktion, joka ei voi toimia joukossa, jossa on enemmän kuin 4 294 967 296 monikkoa.

Huomautus: Tämä ongelma ilmenee myös Microsoft SQL Server 2008 Analysis Servicesissä (SSAS 2008).

Ratkaisu

Kumulatiiviset päivitystiedot

SQL Server 2012

Tämän ongelman korjaus julkaistiin ensimmäisen kerran SQL Server 2012:n kumulatiivisessa päivityksessä 1. Saat lisätietoja tästä kumulatiivisesta päivityspaketista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2679368 Kumulatiivinen päivityspaketti 1 SQL Server 2012:lleHuomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki edelliseen SQL Server 2012:n korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Microsoft suosittelee, että otat käyttöön uusimman kyseisen hotfix-korjauksen sisältävän korjausversion. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

2692828 SQL Server 2012 -koontiversiot, jotka on julkaistu SQL Server 2012:n julkaisemisen jälkeen Sinun on asennettava SQL Server 2012 -hotfix-korjaus SQL Server 2012:n asennukseen.

SQL Server 2008 R2 SP1:n kumulatiivinen päivityspaketti 3

Tämän ongelman korjaus julkaistiin ensin kumulatiivisessa päivityspaketissa 3. Saat lisätietoja tämän SQL Server 2008 R2 SP1:n kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2591748 Kumulatiivinen päivityspaketti 3 SQL Server 2008 R2 SP1:lleHuomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi päivitysversio sisältää kaikki edelliseen SQL Server 2008 R2 SP1 -päivitysversioon sisältyvät hotfix-korjaukset ja tietoturvapäivitykset. Suosittelemme, että otat käyttöön uusimman päivityksen, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

2567616 SQL Server 2008 R2 -koontiversiot, jotka julkaistiin SQL Server 2008 R2 SP1:n julkaisemisen jälkeen

Vaihtoehtoinen menetelmä

Voit kiertää tämän ongelman käyttämällä NON EMPTY -lausetta NONEMPTY-funktion sijasta ja poistamalla WHERE-lausekkeesta erilaiset rakeisuudet tai muut satunnaiset muotojoukot.

Tila

Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.