- Чтобы избежать неоднозначности, поскольку WITH можно использовать в других местах
..FROM..WITH (NOLOCK)..
RESTORE..WITH MOVE..
- Не обязательно завершать операторы с
;
в SQL Server
В совокупности предыдущий оператор должен быть завершен перед WITH / CTE.Чтобы избежать ошибок, большинство людей используют ;WITH
, потому что мы не знаем, что находится до CTE
Так что
DECLARE @foo int;
WITH OrderedOrders AS
(
SELECT SalesOrderID, OrderDate,
...;
совпадает с
DECLARE @foo int
;WITH OrderedOrders AS
(
SELECT SalesOrderID, OrderDate,
...;
Команда MERGE имеет аналогичное требование.