sql >> Database >  >> RDS >> Sqlserver

Gemeenschappelijke tabeluitdrukking, waarom puntkomma?

  • Om dubbelzinnigheid te voorkomen omdat WITH elders kan worden gebruikt
    ..FROM..WITH (NOLOCK)..
    RESTORE..WITH MOVE..
  • Het is optioneel om instructies te beëindigen met ; in SQL Server

Samengevat moet de vorige verklaring worden beëindigd vóór een WITH/CTE. Om fouten te voorkomen, gebruiken de meeste mensen ;WITH omdat we niet weten wat er vóór de CTE is

Dus

DECLARE @foo int

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

is hetzelfde als

DECLARE @foo int

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

Het MERGE-commando heeft een vergelijkbare vereiste.




  1. Caculate punt 50 mijl afstand (Noord, 45% NE, 45% ZW)

  2. Vloeiend NHibernate en PostgreSQL, SchemaMetadataUpdater.QuoteTableAndColumns - System.NotSupportedException:Opgegeven methode wordt niet ondersteund

  3. MariaDB DEFAULT() Uitgelegd

  4. SQL Server-query:snel met letterlijk maar traag met variabelen