I have discovered that when I run a CTE in a query window it must have the leading ; but if I am going to run a CTE in a stored procedure it does not need the ;
To me, it would be needed in both places or neither place. Why is this punctuation need in one area and not the other?