KB2421014 – KORJAUS: "Vakava virhe nykyisessä komennossa" -virhesanoma, kun käytät Freetexttable- tai Containstable-funktiota indeksoidussa näkymässä CTE-kyselyssä SQL Server 2008:ssa tai SQL Server 2008 R2:ssa

Käytetään kohteeseen
SQL Server 2008 SQL Server 2008 R2 SQL Server 2008 Service Pack 2

Microsoft jakelee Microsoft SQL Server 2008- tai Microsoft SQL Server 2008 R2 -korjauksia yhtenä ladattavana tiedostona. Koska korjaukset ovat kumulatiivisia, jokainen uusi versio sisältää kaikki aiempiin SQL Server 2008:n tai SQL Server 2008 R2:n korjausjulkaisuihin sisältyvät hotfix-korjaukset ja tietoturvakorjaukset.

Ongelman ilmenemistapa

Oletetaan, että sinulla on nimetty esiintymä Microsoft SQL Server 2008:ssa tai Microsoft SQL Server 2008 R2:ssa, joka on asennettu palvelimeen. Kun suoritat Common Table Expression (CTE) -kyselyn, joka käyttää Freetexttable- tai Containstable-funktiota indeksoidussa näkymässä, CTE-kysely epäonnistuu ja tapahtuu käyttörikkomuspoikkeus. Lisäksi näyttöön tulee seuraava virhesanoma:

Huomautus

Sanoma 0, taso 11, tila 0, rivi 0
Nykyisessä komennossa tapahtui vakava virhe. Mahdolliset tulokset on hylättävä.

Käyttörikkomuspoikkeus ilmenee esimerkiksi silloin, kun suoritat seuraavan koodin:

WITH CTE AS  (select [Key] as Key, [Rank] from FREETEXTTABLE(< indexed view name >, *, '< search string >'))  SELECT * FROM CTE  

Ratkaisu

Kumulatiiviset päivitystiedot

SQL Server 2008 Service Pack 2

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

2527180 Kumulatiivinen päivityspaketti 4 SQL Server 2008 Service Pack 2:lleHuomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki hotfix-korjaukset ja tietoturvakorjaukset, jotka sisältyivät edelliseen SQL Server 2008:n korjausversioon. 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:

2402659 SQL Server 2008 -koontiversiot, jotka on julkaistu SQL Server 2008 Service Pack 2:n julkaisemisen jälkeen Microsoft SQL Server 2008:n hotfix-korjaukset on tarkoitettu tietyille SQL Server Service Pack -paketeille. SQL Server 2008 Service Pack 2:n asennuksessa on käytettävä SQL Server 2008 Service Pack 2:n hotfix-korjausta. Oletusarvoisesti kaikki SQL Server Service Pack -pakettiin sisältyvät hotfix-korjaukset seuraavaan SQL Server Service Packiin.

SQL Server 2008 R2

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

2345451 SQL Server 2008 R2:n kumulatiivinen päivityspaketti 4 Huomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki edelliseen SQL Server 2008 R2:n korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

981356 SQL Server 2008 R2 -koontiversiot, jotka julkaistiin SQL Server 2008 R2:n jälkeen

Vaihtoehtoinen menetelmä

Voit kiertää tämän ongelman jollakin seuraavista menetelmistä:

  • Tallenna välitulokset CTE:n sijasta näkymään, väliaikaiseen taulukkoon tai taulukonmuuttujaan.
  • Päivitä kysely käyttämään johdettua taulukkoa tai alikyselyä. Tämä eliminoi tarpeen käyttää CTE:tä.

Tila

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

Viitteet

Lisätietoja yleisten taulukoiden lausekkeiden käyttämisestä on seuraavassa Microsoftin verkkosivustossa:

Yleisten taulukoiden lausekkeiden käyttäminen Lisätietoja Freetexttable (Transact-SQL) -funktiosta on seuraavassa Microsoftin verkkosivustossa:

FREETEXTTABLE (Transact-SQL) Lisätietoja Containstable (Transact-SQL)-funktiosta on seuraavassa Microsoftin verkkosivustossa:

CONTAINSTABLE (Transact-SQL) Lisätietoja indeksoitujen näkymien luomisesta on seuraavassa Microsoft-sivustossa:

Indeksoitujen näkymien luominen
        
Saat lisätietoja SQL Server:n lisäävästä ylläpitomallista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

935897 SQL Server-tiimi tarjoaa lisäävän ylläpidon mallin, joka toimittaa hotfix-korjauksia ilmoitettuihin ongelmiin

Saat lisätietoja SQL Server -päivitysten nimeämisrakenteesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

822499 Microsoft SQL Server -ohjelmistopäivityspakettien uusi nimeämisrakenneSaat lisätietoja ohjelmistopäivitysterminologiasta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

824684 Microsoftin ohjelmistopäivityksiä kuvaavan vakioterminologian kuvaus