Oprava: "Nesprávná syntaxe poblíž textu 'begi'" chybová zpráva při spuštění příkazu Transact-SQL v SQL Server 2012

Šablona: Obecná oprava Hotfix

Chyba č: 184706 (Údržba obsahu) VSTS: 1226020

Service Pack 1 pro Microsoft SQL Server 2012 opravy jsou distribuovány jako jeden soubor ke stažení. Vzhledem k tomu, že jsou kumulativní opravy, každá nová verze tedy obsahuje všechny opravy hotfix a vydání opravit všechny opravy zabezpečení zahrnuté předchozí SQL Server 2012 Service Pack 1.

Příznaky

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

Nesprávná syntaxe poblíž textu 'begi'.


K tomuto problému dochází, pokud jsou splněny následující podmínky:

  • Výpis obsahuje podmínky IF .

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

  • ZAHÁJIT akci bloku následuje podmínka IF .

  • Pokud blok je znovu zkompilovány při spuštění dotazu.


Řešení

Informace o kumulativní aktualizaci

Kumulativní aktualizace 4 pro SQL Server 2012 SP1

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

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

2772858 SQL Server 2012 vytvoří, které byly vydány po vydání aktualizace Service Pack 1 pro SQL Server 2012

Stav

Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".

Další informace

Pro reprodukci tohoto problému, spusťte následující příkazy jazyka Transact-SQL v SQL Server 2012:

DECLARE @i INT

IF object_id('tempdb..#temptable') IS NOT NULL
DROP TABLE #temptable

CREATE TABLE #temptable (id INT)
INSERT INTO #temptable VALUES (1),(2),(3);

IF year(getdate())=2012 SELECT @i=(SELECT COUNT(*) AS nr FROM #temptable);
BEGIN TRY
SELECT 'message'
END TRY

BEGIN CATCH
SELECT ERROR_MESSAGE()
END CATCH

Jak potíže obejít

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

Odkazy

Další informace o přírůstkové Model servis pro SQL Server klepněte na následující číslo článku naleznete v článku znalostní báze Microsoft Knowledge Base:

935897 dílčí Model obsluhy je k dispozici z týmu SQL Server doručit opravy hotfix pro nahlášené potížeDalší informace o schéma názvů pro aktualizace serveru SQL Server klepněte na následující číslo článku naleznete v článku znalostní báze Microsoft Knowledge Base:

822499 schéma zásady vytváření názvů pro Microsoft SQL Server software balíčky aktualizací.Další informace o terminologii aktualizace softwaru klepněte na následující číslo článku naleznete v článku znalostní báze Microsoft Knowledge Base:

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

Autor: rmaini; jannaw
Zapisovatel: v-fismao
Odborný recenzent: rmaini; anokrut; yuronhe; umajay jannaw; sqlprev
 Editor: v-jonwoo

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Děkujeme za váš názor!

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×