Symptômes
Prenons le scénario suivant :
- Vous utilisez un ordinateur qui exécute Microsoft SQL Server 2012 ou SQL Server 2014.
- Vous créez un audit et de nombreuses clauses WHERE de plus de 3 000 octets.
- Vous essayez de démarrer l’audit à l’aide d’une instruction ALTER
Dans ce scénario, l’audit ne démarre pas et vous recevez le message d’erreur suivant :
Remarque
Msg 102, Niveau 15, État 1, Ligne LineNumber
Syntaxe incorrecte près de 'SomeStrings'.
Msg 25711, Niveau 16, État 2, Ligne LineNumber
Échec de l’analyse du prédicat d’un événement.
REMARQUE : Notez que le problème ici est que l’erreur de syntaxe est incorrectement générée à l’étape 3, lorsque vous essayez de DÉMARRER la trace. Ce correctif permet de déclencher l’erreur au bon endroit, à l’étape 2 où vous CRÉEZ un audit avec une clause WHERE supérieure à (>) 3 000 caractères. Ce correctif ne modifie pas la limite d’expression de prédicat WHERE.
L’expression de prédicat est toujours limitée à 3000 caractères. Reportez-vous à predicate_expression dans l’article suivant sur BOL : ALTER SERVER AUDIT (Transact-SQL).
Résolution
Le problème a été résolu pour la première fois dans la mise à jour cumulative suivante de SQL Server.
Mise à jour cumulative 1 pour SQL Server 2014 /en-us/help/2931693
Mise à jour cumulative 7 pour SQL Server 2012 SP1 /en-us/help/2894115
À propos des mises à jour cumulatives pour SQL Server
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
- Dernière mise à jour cumulative pour SQL Server 2014
- Dernière mise à jour cumulative pour SQL Server 2012 SP1
État
Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».