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 CATCHJak 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