Platí pro
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 microsoft SQL Server 2012 Service Pack 1 se distribuují jako jeden soubor ke stažení. Vzhledem k tomu, že opravy jsou kumulativní, obsahuje každá nová verze všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze SQL Server 2012 Service Pack 1.

Příznaky

Při spuštění příkazu Jazyka Transact-SQL v SQL Server 2012 se zobrazí následující chybová zpráva:

Nesprávná syntaxe v blízkosti "begi".

K tomuto problému dochází při splnění následujících podmínek:

  • Příkaz obsahuje podmínku KDYŽ.

  • Podmínka KDYŽ neobsahuje příkazy BEGIN a END.

  • Za podmínkou IF následuje blok BEGIN TRY.

  • Při spuštění dotazu se znovu zkompiluje blok IF.

Řešení

Informace o kumulativní aktualizaci

Kumulativní aktualizace 4 pro SQL Server 2012 SP1

Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 4. Další informace o získání tohoto balíčku kumulativní aktualizace pro SQL Server 2012 SP1 naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

2833645 Kumulativní aktualizace 4 pro SQL Server 2012 SP1Note Vzhledem k tomu, že sestavení jsou kumulativní, obsahuje každá nová verze oprav všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze SQL Server 2012 SP1. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

2772858 Buildy SQL Server 2012 vydané po vydání aktualizace Service Pack 1 SQL Server 2012

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace

Pokud chcete tento problém reprodukovat, spusťte v SQL Server 2012 následující příkazy jazyka Transact-SQL: DECLARE @i INTIF object_id('tempdb.. #temptable') NENÍ 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

Řešení

Chcete-li tento problém vyřešit, přidejte do podmínky IF příkazy BEGIN a END.

Odkazy

Další informace o modelu přírůstkové údržby pro SQL Server naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

935897 Model přírůstkové údržby je k dispozici od SQL Server týmu pro doručování oprav hotfix pro nahlášené problémy Další informace o schématu pojmenování pro SQL Server aktualizace klepněte na následující číslo článku přejděte na článek znalostní báze Microsoft Knowledge Base:

822499 Schéma pojmenování balíčků aktualizací softwaru microsoft SQL Server Další informace o terminologii aktualizací softwaru získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.