Dotyczy
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

Poprawki programu Microsoft SQL Server 2012 z dodatkiem Service Pack 1 są rozpowszechniane jako jeden plik do pobrania. Biorąc pod uwagę, że poprawki są zbiorcze, każda nowa wersja zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej wersji poprawki dodatku Service Pack 1 SQL Server 2012.

Symptomy

Po uruchomieniu instrukcji Transact-SQL w SQL Server 2012 jest wyświetlany następujący komunikat o błędzie:

Nieprawidłowa składnia w pobliżu "begi".

Ten problem występuje, gdy spełnione są następujące warunki:

  • Instrukcja zawiera warunek JEŻELI.

  • Warunek JEŻELI nie zawiera instrukcji BEGIN i END.

  • Po warunku JEŻELI występuje blok BEGIN TRY.

  • Blok JEŻELI zostanie ponownie skompilowany po uruchomieniu zapytania.

Rozwiązanie

Informacje o aktualizacji zbiorczej

Aktualizacja zbiorcza 4 dla SQL Server 2012 z dodatkiem SP1

Poprawka rozwiązła ten problem została opublikowana po raz pierwszy w aktualizacji zbiorczej 4. Aby uzyskać więcej informacji na temat uzyskiwania tego zbiorczego pakietu aktualizacji dla SQL Server 2012 z dodatkiem SP1, kliknij następujący numer artykułu, aby przejść do tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2833645 Aktualizacja zbiorcza 4 dla SQL Server 2012 z dodatkiem SP1Note Biorąc pod uwagę, że kompilacje są zbiorcze, każda nowa wersja poprawki zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej wersji poprawki z SQL Server 2012 z dodatkiem SP1. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej 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 Kompilacje SQL Server 2012, które zostały wydane po wydaniu dodatku Service Pack 1 SQL Server 2012

Stan

Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".

Więcej informacji

Aby odtworzyć ten problem, uruchom następujące instrukcje Transact-SQL w 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);JEŻELI rok(getdate())=2012 SELECT @i=(SELECT COUNT(*) AS nr FROM #temptable);BEGIN TRYSELECT 'message'END TRYBEGIN CATCH SELECTERROR_MESSAGE()END CATCH

Obejście

Aby obejść ten problem, dodaj instrukcje BEGIN i END do warunku JEŻELI.

Informacje

Aby uzyskać więcej informacji na temat przyrostowego modelu obsługi dla SQL Server, kliknij następujący numer artykułu, aby przejść do tego artykułu z bazy wiedzy Microsoft Knowledge Base:

935897 Przyrostowy model obsługi jest dostępny od zespołu SQL Server w celu dostarczenia poprawek zgłoszonych problemów Aby uzyskać więcej informacji na temat schematu nazewnictwa aktualizacji SQL Server, kliknij następujący numer artykułu, aby przejść do artykułu z bazy wiedzy Microsoft Knowledge Base:

822499 Schemat nazewnictwa dla pakietów aktualizacji oprogramowania firmy Microsoft SQL Server Aby uzyskać więcej informacji na temat terminologii aktualizacji oprogramowania, kliknij następujący numer artykułu, aby przejść do 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.