Příznaky
Vezměte v úvahu následující scénář:
- Máte počítač se systémem Microsoft SQL Server 2012 nebo SQL Server 2014.
- Vytvoříte audit a mnoho klauzulí WHERE, které jsou větší než 3000 bajtů.
- Pokusíte se spustit audit pomocí příkazu ALTER
V tomto scénáři se audit nespustí a zobrazí se následující chybová zpráva:
Poznámka
Zpráva 102, úroveň 15, stav 1, číslo řádku
Nesprávná syntaxe poblíž SomeStrings.
Zpráva 25711, úroveň 16, stav 2, číslo řádku
Predikát události se nepovedlo analyzovat.
POZNÁMKA: Upozorňujeme, že problém spočívá v tom, že chyba syntaxe je nesprávně vyvolána v kroku 3, když se pokusíte spustit trasování. Tato oprava umožňuje vyvolat chybu na správném místě – v kroku 2, ve kterém vytvoříte audit s klauzulí WHERE delší než (>) 3000 znaků. Tato oprava nezmění omezení výrazu predikátu WHERE.
Predikátový výraz je stále omezen na 3000 znaků. Další informace najdete v predicate_expression v následujícím článku BOL: ALTER SERVER AUDIT (Transact-SQL).
Řešení
Tento problém byl poprvé opraven v následující kumulativní aktualizaci SQL Server.
Kumulativní aktualizace 1 pro SQL Server 2014 /en-us/help/2931693
Kumulativní aktualizace 7 pro SQL Server 2012 SP1 /en-us/help/2894115
Informace o kumulativních aktualizacích pro SQL Server
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:
- Nejnovější kumulativní aktualizace pro SQL Server 2014
- Nejnovější kumulativní aktualizace pro SQL Server 2012 SP1
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.