Sintomas
Considere o seguinte cenário:
-
Tem um computador que está a executar o Microsoft SQL Server 2012 ou o SQL Server 2014.
-
Você cria uma auditoria e muitas cláusulas WHERE que são maiores que 3000 bytes.
-
Tenta iniciar a auditoria usando uma declaração ALTER
Neste cenário, a auditoria não arranca e recebe a seguinte mensagem de erro:
Msg 102, Nível 15, Estado 1, LineNumber Sintaxe incorreta perto de 'SomeStrings'. Msg 25711, Nível 16, Estado 2, LineNumber Falhou em analisar um predicado evento.
NOTA: Por favor, note que a questão aqui é que o erro de sintaxe é incorretamente levantado no passo 3, quando tenta iniciar o rastreio. Esta correção permite que o erro seja levantado no local adequado, no passo 2 onde cria uma auditoria com cláusula WHERE superior a (>) 3000 caracteres. Esta correção não altera o limite de expressão onde predicado.
A expressão predicado ainda está limitada a 3000 caracteres. Consulte predicate_expression no seguinte artigo BOL: ALTER SERVER AUDIT (Transact-SQL).
Resolução
O problema foi corrigido pela primeira vez na seguinte atualização cumulativa do SQL Server.
Atualização Cumulativa 1 para SQL Server 2014 /en-us/help/2931693
Atualização Cumulativa 7 para SQL Server 2012 SP1 /en-us/help/2894115
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".