Applies ToSQL Server 2012 Enterprise SQL Server 2012 Business Intelligence SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Express

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

Obejś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

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.