Проблемы
Рассмотрим следующий сценарий.
-
У вас есть компьютер, на котором установлен Microsoft SQL Server 2012 или SQL Server 2014.
-
Вы создаете аудит и многие предложения WHERE размером более 3000 байт.
-
При попытке начать аудит с помощью инструкции ALTER
В этом случае аудит не запускается, и появляется следующее сообщение об ошибке:
Сообщение 102, уровень 15, состояние 1, строка LineNumber Неправильный синтаксис около "SomeStrings". Сообщение 25711, уровень 16, состояние 2, строка LineNumber Не удалось проанализировать предикат событий.
ПРИМЕЧАНИЕ. Обратите внимание, что эта ошибка возникает в том случае, если при попытке запустить трассировку ошибки синтаксиса ошибочно возникают на этапе 3. Это исправление допускает возникновение ошибки в нужном месте на этапе 2, где вы создаете аудит с предложением WHERE больше (>) 3000 символов. Это исправление не влияет на ограничение выражения предиката WHERE.
Выражение предиката по-прежнему ограничивается до 3000 знаков. Обратитесь к predicate_expression в следующей статье Bol: ALTER Server Audit (Transact-SQL).
Решение
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.
Накопительное обновление 1 для SQL Server 2014 /en-us/help/2931693
Накопительное обновление 7 для SQL Server 2012 с пакетом обновления 1 (SP1) /en-us/help/2894115
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".