• Any code before the "WITH STATEMENT" must end with a terminator, which is the semi colon. This prevents errors if this code is placed after other statements in a batch.
    As in: Not each CTE needs a semicolon. You only need one. (And it is optional when it is the first statement in the batch.)