Gäller förSQL Server 2012 Enterprise SQL Server 2012 Business Intelligence SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Express

Korrigeringar för Microsoft SQL Server 2012 Service Pack 1 distribueras som en nedladdningsbar fil. Med tanke på att korrigeringar är kumulativa innehåller varje ny utgåva innehåller alla snabbkorrigeringar och säkerhetskorrigering för alla säkerhetskorrigeringar som ingår med föregående SQL Server 2012 Service Pack 1.

Symptom

När du kör en Transact-SQL-uttryck i SQL Server 2012, visas följande felmeddelande:

Felaktig syntax nära 'begi'.

Det här problemet uppstår när följande villkor är uppfyllda:

  • Uttrycket innehåller en IF -villkor.

  • Om villkoret innehåller inte Start - och slut -satser.

  • Om villkoret följs av ett Försök att BÖRJA block.

  • Om block är recompiled när du kör frågan.

Lösning

Information om Kumulativ uppdatering

Kumulativ uppdatering 4 för SQL Server 2012 SP1

Korrigeringsfil för problemet gavs först ut i kumulativ uppdatering 4. Mer information om hur du skaffar den kumulativa uppdateringspaket för SQL Server 2012 SP1 klickar du på följande artikelnummer för att gå till artikeln i Microsoft Knowledge Base:

2833645 kumulativ uppdatering 4 för SQL Server 2012 SP1Obs! Med tanke på att de build-versioner är kumulativa innehåller varje ny version av korrigeringsfilen innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingår i föregående SQL Server 2012 SP1 fix release. Vi rekommenderar att du använder den senaste utgåvan av korrigering som innehåller den här snabbkorrigeringen. Mer information klickar du på följande artikelnummer för att gå till artikeln i Microsoft Knowledge Base:

2772858 i SQL Server 2012 bygger som har getts ut efter SQL Server 2012 Service Pack 1

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Mer Information

Om du vill återskapa det här problemet kör du följande Transact-SQL-uttryck i SQL Server 2012:DECLARE @i INTIF object_id('tempdb..#temptable') IS NOT NULLDROP TABLE #temptableCREATE TABLE #temptable (id INT)INSERT INTO #temptable VALUES (1),(2),(3);IF year(getdate())=2012 SELECT @i=(SELECT COUNT(*) AS nr FROM #temptable);BEGIN TRYSELECT 'message'END TRYBEGIN CATCHSELECT ERROR_MESSAGE()END CATCH

Temporär lösning

Undvik problemet genom att lägga till BEGIN och END -satser IF -villkor.

Referenser

Mer information om stegvis Servicing modellen för SQL Server klickar du på följande artikelnummer för att gå till artikeln i Microsoft Knowledge Base:

935897 en inkrementell Servicing modell är tillgänglig från SQL Server-teamet att leverera snabbkorrigeringar för rapporterade problemMer information om namngivning schemat för uppdateringar för SQL Server klickar du på följande artikelnummer för att gå till artikeln i Microsoft Knowledge Base:

822499 Naming schema för programvara för Microsoft SQL Server-programuppdateringspaketMer information om terminologin för programuppdateringar klickar du på följande artikelnummer för att gå till artikeln i Microsoft Knowledge Base:

824684 beskrivning av standardterminologin som används för att beskriva Microsoft-programuppdateringar

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.