KB2421014: Foutbericht ' er is een ernstige fout opgetreden bij de huidige opdracht ' wanneer u de FREETEXTTABLE of de CONTAINSTABLE-functie gebruikt voor een geïndexeerde weergave in een CTE-query in SQL Server 2008 of in SQL Server 2008 R2.

Van toepassing: SQL Server 2008SQL Server 2008 R2SQL Server 2008 Service Pack 2

Microsoft distribueert Microsoft SQL Server 2008 of Microsoft SQL Server 2008 R2 met oplossingen als één downloadbaar bestand. Aangezien de fixes cumulatief zijn, bevat elke nieuwe versie alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige versie van SQL Server 2008 of SQL Server 2008 R2.

Symptomen


Ga ervan uit dat u een exemplaar van de naam hebt in Microsoft SQL Server 2008 of in Microsoft SQL Server 2008 R2 op een server hebt geïnstalleerd. Wanneer u een CTE-query (common table Expression) uitvoert die de functie FREETEXTTABLE of CONTAINSTABLE gebruikt voor een geïndexeerde weergave, mislukt de CTE-query en een uitzondering met een toegangsfout. Bovendien wordt het volgende foutbericht weergegeven:
Bericht 0, niveau 11, status 0, regel 0 er is een ernstige fout opgetreden bij de huidige opdracht. Het resultaat, indien van toepassing, moet worden verwijderd.
Als u bijvoorbeeld de volgende code uitvoert, treedt er een uitzondering met een toegangsfout op:
WITH CTE AS  (select [Key] as Key, [Rank] from FREETEXTTABLE(< indexed view name >, *, '< search string >'))  SELECT * FROM CTE  

Oplossing


Cumulatieve updategegevens

SQL Server 2008 Service Pack 2

De oplossing voor dit probleem werd voor het eerst uitgebracht in de cumulatieve update 4 voor SQL Server 2008 Service Pack 2. Klik voor meer informatie over dit cumulatieve updatepakket op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
2527180 Cumulatief updatepakket 4 voor SQL Server 2008 Service Pack 2
Opmerking Aangezien de builds cumulatief zijn, bevat elke nieuwe correctie release alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige versie van SQL Server 2008 fix. Microsoft raadt u aan dat u de meest recente reparatie versie met deze hotfix toepast. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:
2402659 De versies van SQL Server 2008 die na SQL Server 2008 Service Pack 2 zijn uitgebracht
Hotfixes voor Microsoft SQL Server 2008 worden gemaakt voor specifieke SQL Server-servicepakketten. U moet een hotfix voor SQL Server 2008 Service Pack 2 toepassen op een installatie van SQL Server 2008 Service Pack 2. Standaard is de hotfix van een SQL Server-servicepakket opgenomen in het volgende SQL Server-servicepakket.

SQL Server 2008 R2

De oplossing voor dit probleem werd voor het eerst uitgebracht in de cumulatieve update 4. Voor meer informatie over het verkrijgen van dit cumulatieve updatepakket voor SQL Server 2008 R2 klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
2345451 Cumulatief update pakket 4 voor SQL Server 2008 R2
Opmerking Aangezien de builds cumulatief zijn, bevat elke nieuwe correctie release alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige versie van SQL Server 2008 R2 correctie. U wordt aangeraden om de meest recente correctie voor deze hotfix toe te passen. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:
981356 De SQL Server 2008 R2-builds die zijn uitgebracht nadat SQL Server 2008 R2 werd uitgebracht

Workaround


Om dit probleem te omzeilen, kunt u een van de volgende methoden gebruiken:
  • Gebruik een weergave, een tijdelijke tabel of een tabelvariabele in plaats van een CTE om de tussentijdse resultaten op te slaan.
  • De query bijwerken om een afgeleide tabel of een subquery te gebruiken. Hiermee wordt het gebruik van een CTE geëlimineerd.

Status


Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.

Verwijzingen


Ga naar de volgende Microsoft-website voor meer informatie over het gebruik van algemene tabelexpressies:Ga naar de volgende Microsoft-website voor meer informatie over de functie FREETEXTTABLE (Transact-SQL): Ga naar de volgende Microsoft-website voor meer informatie over de functie CONTAINSTABLE (Transact-SQL): Ga naar de volgende Microsoft-website voor meer informatie over het maken van geïndexeerde weergaven: Als u meer informatie wilt over het incremental service model voor SQL Server, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
935897 Een incrementeel service model is beschikbaar in het SQL Server-team om hotfixes te leveren voor gerapporteerde problemen
Klik voor meer informatie over het naamgevingsschema voor SQL Server-updates op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
822499 Nieuw naam schema voor updatepakketten voor Microsoft SQL Server-software
Klik voor meer informatie over de terminologie van software-updates op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
824684 Beschrijving van de standaardterminologie die wordt gebruikt voor het beschrijven van Microsoft-software-updates