Popravke microsoft SQL Server 2012 servisnog paketa 1 distribuiraju se kao jedna datoteka koja se može preuzeti. Imajući u vidu da su ispravke kumulativne, svako novo izdanje sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodno izdanje popravke SQL Server 2012 Servisni paket 1.
Simptomi
Kada pokrenete Transact-SQL izraz u sistemu SQL Server 2012, dobijate sledeću poruku o grešci:
Neispravna sintaksa blizu "begi".
Do ovog problema dolazi kada su ispunjeni sledeći uslovi:
-
Izraz sadrži IF uslov.
-
IF uslov ne sadrži BEGIN i END izraze.
-
Iza if uslova sledi blok BEGIN TRY.
-
Blok IF se ponovo sastavlja kada pokrenete upit.
Rešenje
Kumulativne informacije o ažuriranju
Kumulativna ispravka 4 za SQL Server 2012 SP1
Rešenje ovog problema je prvo objavljeno u kumulativnom ažuriranju 4. Za više informacija o tome kako da nabavite ovaj paket kumulativnih ispravki za SQL Server 2012 SP1, kliknite na sledeći broj članka da biste otišli na članak u Microsoft bazi znanja:
2833645 Kumulativna ispravka 4 za SQL Server 2012 SP1Note Kada su verzije kumulativne, svako novo izdanje popravke sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodno izdanje za popravku sistema SQL Server 2012 SP1. Preporučujemo da razmotrite primenu najnovije ispravke koja sadrži ovu hitnu ispravku. Za više informacija kliknite na sledeći broj članka da biste otišli na članak u Microsoft bazi znanja:
2772858 Verzije SQL Server 2012 objavljene su nakon izdanja SQL Server 2012 Service Pack 1
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".
Više informacija
Da biste reprodukovali ovaj problem, pokrenite sledeće Transact-SQL izjave u sistemu SQL Server 2012: DECLARE @i INTIF object_id('tempdb.). #temptable')NIJE PRAZNA DROP 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);POČNITE DA BIRATESTAVKU "PORUKA", POKUŠAJTE DA POČNETEDA HVATATESELECT ERROR_MESSAGE()END CATCH
Zaobilaženje problema
Da biste rešili ovaj problem, dodajte BEGIN i END izjave u IF uslov.
Reference
Za više informacija o modelu inkrementalnog servisiranja za SQL Server kliknite na sledeći broj članka da biste otišli na članak u Microsoft bazi znanja:
935897 Inkrementalni model servisiranja dostupan je od SQL Server tima za isporuku hitnih ispravki za prijavljene probleme Za više informacija o šemi imenovanja za SQL Server ažuriranja kliknite na sledeći broj članka da biste otišli na članak u Microsoft bazi znanja:
822499 Šema imenovanje za Microsoft SQL Server za softverske ispravke Za više informacija o terminologiji softverskih ispravki kliknite na sledeći broj članka da biste otišli na članak u Microsoft bazi znanja:
824684 Opis standardne terminologije koja se koristi za opisivanja Microsoft softverskih ispravki