use siempre con declaraciones como ;WITH
entonces nunca obtendrás este error. El comando WITH requería un ;
entre éste y cualquier comando anterior, usando siempre ;WITH
nunca tendrás que acordarte de hacer esto.
consulte CON common_table_expression (Transact-SQL), de la sección Directrices para crear y usar expresiones de tabla comunes:
Cuando se utiliza un CTE en una declaración que forma parte de un lote, la declaración anterior debe ir seguida de un punto y coma.