sql >> Base de Datos >  >> RDS >> Sqlserver

Expresión de tabla común, ¿por qué punto y coma?

  • Para evitar la ambigüedad porque WITH puede usarse en cualquier otro lugar
    ..FROM..WITH (NOLOCK)..
    RESTORE..WITH MOVE..
  • Es opcional terminar declaraciones con ; en SQL Server

En conjunto, la declaración anterior debe terminar antes de un CON/CTE. Para evitar errores, la mayoría de la gente usa ;WITH porque no sabemos que hay ante el CTE

Entonces

DECLARE @foo int

;WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
...;

es lo mismo que

DECLARE @foo int

;WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
...;

El comando MERGE tiene un requisito similar.