Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Allgemeiner Tabellenausdruck, warum Semikolon?

  • Um Zweideutigkeiten zu vermeiden, da WITH an anderer Stelle verwendet werden kann
    ..FROM..WITH (NOLOCK)..
    RESTORE..WITH MOVE..
  • Es ist optional, Anweisungen mit ; abzuschließen im SQL-Server

Zusammengenommen muss die vorherige Anweisung vor einem WITH/CTE beendet werden. Um Fehler zu vermeiden, verwenden die meisten Leute ;WITH weil wir nicht wissen, was vor dem CTE ist

Also

DECLARE @foo int

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

ist dasselbe wie

DECLARE @foo int

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

Der MERGE-Befehl hat eine ähnliche Anforderung.