Симптоми
Имайте предвид сценария, описан по-долу:
- Имате компютър, на който се изпълнява Microsoft SQL Server 2012 или SQL Server 2014.
- Създавате проверка и много клаузи WHERE, които са по-големи от 3000 байта.
- Опитвате се да започнете проверката с помощта на команда ALTER
В този случай проверката не се стартира и получавате следното съобщение за грешка:
Забележка
Съобщение 102, Ниво 15, Състояние 1, Line LineNumber
Неправилен синтаксис близо до 'SomeStrings'.
Msg 25711, Level 16, State 2, Line LineNumber
Неуспешен анализ на предикат.
ЗАБЕЛЕЖКА: Обърнете внимание, че проблемът тук е, че синтактичната грешка е неправилно посочена в стъпка 3, когато се опитате да СТАРТИРАТЕ проследяването. Тази корекция позволява грешката да бъде повдигната на правилното място в стъпка 2, където CREATE проверка с клауза WHERE, по-голяма от (>) 3000 знака. Тази корекция не променя ограничението за предикатни изрази WHERE.
Изразът за предиката все още е ограничен до 3000 знака. Вижте predicate_expression в следната статия за BOL: ALTER SERVER AUDIT (Transact-SQL).
Решение
Проблемът е коригиран за първи път в следващата кумулативна актуализация на SQL Server.
Сборна актуализация 1 за SQL Server 2014 г. /bg-bg/help/2931693
Сборна актуализация 7 за SQL Server 2012 SP1 /en-us/help/2894115
За кумулативните актуализации за SQL Server
Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.