Síntomas
Imagine la siguiente situación:
-
Tiene un equipo que ejecuta Microsoft SQL Server 2012 o SQL Server 2014.
-
Cree una auditoría y muchas cláusulas Where mayores de 3000 bytes.
-
Intenta iniciar la auditoría mediante una instrucción ALTER
En este escenario, la auditoría no se inicia y recibe el siguiente mensaje de error:
Msj 102, nivel 15, estado 1, línea lineNumber Sintaxis incorrecta cerca de 'SomeStrings'. Msj 25711, nivel 16, estado 2, línea lineNumber Error al analizar un predicado de evento.
NOTA: Tenga en cuenta que el problema es que el error de sintaxis se genera incorrectamente en el paso 3, cuando intenta iniciar el seguimiento. Esta corrección permite que el error se produzca en el lugar apropiado, en el paso 2, donde se crea una auditoría con una cláusula WHERE mayor que (>) 3000 caracteres. Esta corrección no cambia el límite de la expresión de predicado WHERE.
La expresión de predicado sigue limitada a 3000 caracteres. Consulte predicate_expression en el siguiente artículo de Bol: ALTER Server Audit (Transact-SQL).
Resolución
El problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server.
Actualización acumulativa 1 para SQL Server 2014 /en-us/help/2931693
Actualización acumulativa 7 para SQL Server 2012 SP1 /en-us/help/2894115
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".