Maison >base de données >tutoriel mysql >Pourquoi utiliser un point-virgule avant une expression de table commune (CTE) dans SQL Server ?

Pourquoi utiliser un point-virgule avant une expression de table commune (CTE) dans SQL Server ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 10:25:43659parcourir

Why Use a Semicolon Before a Common Table Expression (CTE) in SQL Server?

Point-virgule dans les instructions Common Table Expression (CTE)

Dans SQL Server, les instructions Common Table Expression (CTE) incluent souvent un point-virgule avant le déclaration, comme le montre l'exemple ci-dessous :

;WITH OrderedOrders AS --semicolon here
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
    FROM Sales.SalesOrderHeader 
) 
SELECT * 
FROM OrderedOrders 
WHERE RowNumber BETWEEN 50 AND 60

Ce point-virgule sert à deux principaux fins :

  • Éviter toute ambiguïté :Le mot-clé AVEC peut être utilisé dans d'autres contextes, tels que :
..FROM..WITH (NOLOCK)..
RESTORE..WITH MOVE..

Pour éviter toute confusion, un Le point-virgule est utilisé pour terminer l'instruction avant AVEC afin de la différencier des autres utilisations.

  • Instruction facultative Terminaison : Dans SQL Server, les points-virgules sont facultatifs pour la terminaison d'une instruction. Cependant, il est généralement recommandé d'utiliser des points-virgules pour améliorer la lisibilité et éviter les erreurs.

Lorsqu'ils sont utilisés ensemble, ces facteurs dictent que l'instruction CTE doit être terminée avant la clause WITH pour éviter les ambiguïtés. Par conséquent, le point-virgule est inséré avant AVEC pour garantir une analyse correcte de l'instruction.

Cette règle s'applique également à la commande MERGE, qui a une exigence similaire pour un point-virgule avant l'instruction.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn