sempre use com instruções como
;WITH
então você nunca terá esse erro. O comando WITH exigiu um ;
entre ele e qualquer comando anterior, sempre usando ;WITH
você nunca terá que se lembrar de fazer isso. consulte WITH common_table_expression (Transact-SQL), na seção Diretrizes para criar e usar expressões de tabela comuns:
Quando um CTE é usado em uma instrução que faz parte de um lote, a instrução anterior a ela deve ser seguida por um ponto e vírgula.