Vzťahuje sa na
SQL Server 2012 Enterprise SQL Server 2012 Business Intelligence SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Express

Opravy balíka Microsoft SQL Server 2012 Service Pack 1 sú distribuované ako jeden súbor na stiahnutie. Vzhľadom na to, že opravy sú kumulatívne, každé nové vydanie obsahuje všetky rýchle opravy a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania opravy SQL Server 2012 Service Pack 1.

Príznaky

Pri spustení príkazu Transact-SQL v SQL Server 2012 sa zobrazí nasledujúce chybové hlásenie:

Nesprávna syntax v blízkosti "begi".

Tento problém sa vyskytuje, keď sú splnené nasledujúce podmienky:

  • Príkaz obsahuje podmienku IF.

  • Podmienka IF neobsahuje príkazy BEGIN a END.

  • Za podmienkou IF nasleduje blok BEGIN TRY.

  • Blok IF sa pri spustení dotazu znova kompiluje.

Riešenie

Informácie o kumulatívnej aktualizácii

Kumulatívna aktualizácia 4 pre SQL Server 2012 SP1

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 4. Ďalšie informácie o tom, ako získať tento balík kumulatívnej aktualizácie pre SQL Server 2012 SP1, kliknite na nasledujúce číslo článku a prejdite na článok v databáze Microsoft Knowledge Base:

2833645 Kumulatívna aktualizácia 4 pre SQL Server 2012 SP1Note Vzhľadom na to, že zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania opravy SQL Server 2012 SP1. Odporúčame, aby ste zvážili použitie najnovšieho vydania opravy, ktoré obsahuje túto rýchlu opravu. Ďalšie informácie nájdete kliknutím na nasledujúce číslo článku v databáze Microsoft Knowledge Base:

2772858 Zostavy SQL Server 2012, ktoré boli vydané po vydaní balíka Service Pack 1 SQL Server 2012

Stav

Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.

Ďalšie informácie

Ak chcete reprodukovať tento problém, spustite nasledujúce príkazy Transact-SQL v 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

Alternatívne riešenie

Ak chcete tento problém obísť, pridajte príkazy BEGIN a END do podmienky IF.

Odkazy

Ďalšie informácie o modeli prírastkovej údržby pre SQL Server získate kliknutím na číslo nasledujúceho článku v článku v databáze Microsoft Knowledge Base:

935897 Tím SQL Server poskytuje model prírastkovej údržby na poskytovanie rýchlych opráv hlásených problémov. Ďalšie informácie o schéme pomenovania pre aktualizácie SQL Server získate kliknutím na číslo nasledujúceho článku v článku databázy Microsoft Knowledge Base:

822499 Schéma pomenovania pre balíky aktualizácií softvéru Microsoft SQL Server. Ďalšie informácie o terminológii aktualizácií softvéru získate kliknutím na toto číslo článku v článku databázy Microsoft Knowledge Base:

824684 Popis štandardnej terminológie, ktorá sa používa na popis aktualizácií softvéru spoločnosti Microsoft

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.