Symptomer
Overvej følgende scenarie:
- Du har en computer, der kører Microsoft SQL Server 2012 eller SQL Server 2014.
- Du opretter en overvågning og mange WHERE-delsætninger, der er større end 3000 byte.
- Du forsøger at starte overvågningen ved hjælp af en ALTER-sætning
I dette scenarie starter overvågningen ikke, og du modtager følgende fejlmeddelelse:
Bemærk
Msg 102, niveau 15, stat 1, linjenummer
Forkert syntaks i nærheden af 'SomeStrings'.
Msg 25711, Level 16, State 2, Line LineNumber
Det lykkedes ikke at fortolke et hændelsesprædikat.
BEMÆRK: Bemærk, at problemet her er, at syntaksfejlen udløses forkert i trin 3, når du forsøger at STARTE sporingen. Denne løsning gør det muligt at opstå fejlen det rigtige sted i trin 2, hvor du OPRETTER en revision med WHERE-delsætningen, der er større end (>) 3000 tegn. Denne rettelse ændrer ikke grænsen for WHERE-prædikatudtryk.
Prædikatudtrykket er stadig begrænset til 3000 tegn. Se predicate_expression i følgende BOL-artikel: ALTER SERVER AUDIT (Transact-SQL).
Løsning
Problemet blev først løst i følgende kumulative opdatering af SQL Server.
Samlet opdatering 1 til SQL Server 2014 /en-us/help/2931693
Samlet opdatering 7 til SQL Server 2012 SP1 /en-us/help/2894115
Om kumulative opdateringer til SQL Server
Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:
- Seneste kumulative opdatering til SQL Server 2014
- Seneste kumulative opdatering til SQL Server 2012 SP1
Status
Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".