Microsoft SQL Server 2012 Service Pack 1-Updates werden als downloadbare Datei verteilt. Da die kumulativ sind, jede neue Version enthält alle Hotfixes und alle Sicherheitsupdates, die mit früheren SQL Server 2012 Service Pack 1 Release beheben.
Problembeschreibung
Beim Ausführen einer Transact-SQL-Anweisung in SQL Server 2012 erhalten Sie die folgende Fehlermeldung angezeigt:
Falsche Syntax bei "geplanten".
Dieses Problem tritt auf, wenn Folgendes zutrifft:
-
Die Anweisung enthält eine IF -Bedingung.
-
Die IF -Bedingung enthält keine Anweisungen BEGIN und END .
-
Die IF -Bedingung folgt einem Beginnen TRY -Block.
-
IF -Block wird beim Ausführen der Abfrage neu kompiliert.
Problemlösung
Informationen zum kumulativen Update
Kumulative Update 4 für SQL Server 2012 SP1
Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 4 veröffentlicht. Weitere Informationen zu diesem kumulativen Updatepaket für SQL Server 2012 SP1 finden Sie im folgenden Artikel in der Microsoft Knowledge Base-Artikel zu:
2833645 kumulative update 4 für SQL Server 2012 SP1Hinweis Da diese Builds kumulativ sind, jede neue Version enthält alle Hotfixes und alle Sicherheitsupdates, die mit früheren SQL Server 2012 SP1 Release beheben. Wir empfehlen Sie prüfen die neueste Update-Version, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel Artikel der Microsoft Knowledge Base zu:
2772858 der SQL Server 2012 builds, die nach der Freigabe von Service Pack 1 für SQL Server 2012
Status
Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.
Weitere Informationen
Um dieses Problem zu reproduzieren, führen Sie die folgende Transact-SQL-Anweisung in 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 CATCH
PROBLEMUMGEHUNG
IF -Bedingung fügen Sie Anweisungen BEGIN und END hinzu , um dieses Problem zu umgehen.
Referenzen
Weitere Informationen zum inkrementellen Dienstmodell für SQL Server folgendem folgenden Artikel der Microsoft Knowledge Base zu:
935897 erläutert wird ein inkrementelles Dienstmodell steht der SQL Server-Team zu Hotfixes für gemeldete ProblemeWeitere Informationen zum Benennungsschema für SQL Server-Updates finden Sie im folgenden Artikel Artikel der Microsoft Knowledge Base zu:
822499 Benennung Schema für Microsoft SQL Server-Software Pakete aktualisierenFür weitere Informationen zur Terminologie für Softwareupdates klicken Sie auf die folgende Artikelnummer, und fahren Sie mit dem Artikel in der Microsoft Knowledge Base fort:
824684 Erläuterung von der standardmäßigen Standardbegriffen bei Microsoft Softwareupdates