Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie verfügen über einen Computer, auf dem Microsoft SQL Server 2012 oder SQL Server 2014 ausgeführt wird.
-
Sie erstellen eine Überwachungs-und viele Where -Klauseln, die größer als 3000 Bytes sind.
-
Sie versuchen, die Überwachung mithilfe einer Alter -Anweisung zu starten.
In diesem Szenario wird die Überwachung nicht gestartet, und es wird die folgende Fehlermeldung angezeigt:
Msg 102, Ebene 15, Zustand 1, Zeile LineNumber Falsche Syntax in der Nähe von "SomeStrings" Msg 25711, Ebene 16, Zustand 2, Zeile LineNumber Fehler beim Analysieren eines Ereignis Prädikats.
HINWEIS: Beachten Sie, dass das Problem darin besteht, dass der Syntaxfehler in Schritt 3 falsch ausgelöst wird, wenn Sie versuchen, die Ablaufverfolgung zu starten . Mit diesem Fix kann der Fehler an der richtigen Stelle ausgelöst werden, in Schritt 2, in dem Sie eine Überwachung mit WHERE-Klausel größer als (#a0) 3000 Zeichen Erstellen . Mit diesem Fix wird die Grenze des Where-Prädikatausdrucks nicht geändert.
Der Prädikatausdruck ist weiterhin auf 3000 Zeichen limitiert. Weitere Informationen finden Sie unter predicate_expression im folgenden Bol-Artikel: Alter Server Audit (Transact-SQL).
Fehlerbehebung
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 1 für SQL Server 2014 /en-us/help/2931693
Kumulatives Update 7 für SQL Server 2012 SP1 /en-us/help/2894115
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.