Primjenjuje se 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

Popravci za Microsoft SQL Server 2012 Service Pack 1 distribuiraju se kao jedna datoteka za preuzimanje. S obzirom na to da su popravci kumulativni, svako novo izdanje sadrži sve hitne popravke i sve sigurnosne popravke obuhvaćene prethodnim izdanjem popravka SQL Server 2012 Service Pack 1.

Simptomi

Kada pokrenete naredbu Transact-SQL u SQL Server 2012, prikazuje se sljedeća poruka o pogrešci:

Neispravna sintaksa blizu 'begi'.

Taj se problem pojavljuje kada su ispunjeni sljedeći uvjeti:

  • Naredba sadrži uvjet IF.

  • Uvjet IF ne sadrži naredbe BEGIN i END.

  • Nakon uvjeta IF slijedi blok BEGIN TRY.

  • Blok IF ponovno se kompiliran prilikom pokretanja upita.

Rješenje

Informacije o kumulativnom ažuriranju

Kumulativno ažuriranje 4 za SQL Server 2012 SP1

Rješenje za taj problem prvi je put izdano u skupnom ažuriranju 4. Dodatne informacije o tome kako nabaviti ovaj paket kumulativnog ažuriranja za SQL Server 2012 SP1 potražite u članku iz Microsoftove baze znanja:

2833645 Kumulativno ažuriranje 4 za SQL Server 2012 SP1Note S obzirom na to da su međuverzije kumulativne, svako novo izdanje popravka sadrži sve hitne popravke i sve sigurnosne popravke koji su obuhvaćeni prethodnim izdanjem rješenja SQL Server 2012 SP1. Preporučujemo da razmislite o primjeni najnovijeg izdanja za popravak koje sadrži taj hitni popravak. Da biste pronašli dodatne informacije, kliknite sljedeći broj članka da bi vam se otvorio članak u Microsoftovoj bazi znanja:

2772858 Izdane SQL Server 2012. objavljene nakon izdavanja SQL Server 2012 Service Pack 1

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku "Odnosi se na".

Dodatne informacije

Da biste reproducirali taj problem, pokrenite sljedeće transact-SQL naredbe u programu 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

Zaobilazno rješenje

Da biste zaobišli taj problem, dodajte naredbe BEGIN i END u uvjet IF.

Reference

Dodatne informacije o inkrementalnim servisnim modelom za SQL Server potražite u članku iz Microsoftove baze znanja:

935897 Od tima za SQL Server dostupan je inkrementalni servisni model za isporuku hitnih popravaka za prijavljene probleme Da biste saznali više o shemi imenovanja za ažuriranja sustava SQL Server, kliknite sljedeći broj članka da biste otvorili članak u Microsoftovoj bazi znanja:

822499 Shema imenovanja za pakete microsoftovih SQL Server ažuriranja Za dodatne informacije o terminologiji ažuriranja softvera kliknite sljedeći broj članka da biste otvorili članak u Microsoftovoj bazi znanja:

824684 Opis standardne terminologije koja se koristi za opisIvanje Microsoftovih softverskih ažuriranja

Potrebna vam je dodatna pomoć?

Želite dodatne mogućnosti?

Istražite pogodnosti pretplate, pregledajte tečajeve za obuku, saznajte kako zaštititi uređaj i još mnogo toga.