Dodatek Service Pack 1 dla programu Microsoft SQL Server 2012 poprawki są rozpowszechniane jako jeden plik do pobrania. Biorąc pod uwagę fakt, że poprawki są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały zawarte w poprzednich SQL Server 2012 Service Pack 1 Release.
Objawy
Po uruchomieniu instrukcji języka Transact-SQL w programie SQL Server 2012, pojawi się następujący komunikat o błędzie:
Nieprawidłowa składnia w sąsiedztwie "begi".
Ten problem występuje, gdy są spełnione następujące warunki:
-
Instrukcja zawiera warunek IF .
-
Jeśli warunek nie zawiera instrukcje rozpoczęcia i zakończenia .
-
Jeśli warunek jest po bloku BEGIN TRY .
-
Bloku IF jest ponownie kompilowana podczas wykonywania kwerendy.
Rozwiązanie
Informacje dotyczące zbiorczej aktualizacji
Zbiorcza aktualizacja 4 dla dodatku SP1 dla programu SQL Server 2012
Poprawkę dotyczącą tego problemu najpierw została wydana w zbiorczej aktualizacji 4. Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2012 z dodatkiem SP1 kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2833645 Zbiorcza aktualizacja 4 dla programu SQL Server 2012 z dodatkiem SP1Uwaga Biorąc pod uwagę fakt, że są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniego programu SQL Server 2012 SP1 Release. Firma Microsoft zaleca, aby rozważyć zastosowanie najnowszej wersji poprawki, zawierający tę poprawkę. Aby uzyskać więcej informacji kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2772858 programu SQL Server 2012 tworzy wydane po wydaniu dodatku Service Pack 1 dla programu SQL Server 2012
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.
Więcej informacji
Aby odtworzyć ten problem, uruchom następujące instrukcje języka Transact-SQL w programie 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 CATCHObejście problemu
Aby obejść ten problem, należy dodać do warunku IF instrukcje rozpoczęcia i zakończenia .
Powiązane artykuły
Aby uzyskać więcej informacji o przyrostowych modelu obsługi programu SQL Server kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
935897 przyrostowe modelu obsługi jest dostępne z zespołu programu SQL Server do dostarczania poprawki dla problemów zgłoszonychAby uzyskać więcej informacji na temat schematu nazewnictwa dla aktualizacji programu SQL Server kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
822499 schemat nazewnictwa dla oprogramowania Microsoft SQL Server pakietów aktualizacjiAby uzyskać więcej informacji dotyczących terminologii aktualizacji oprogramowania kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft