SQL Server 共通テーブル式 (CTE) のセミコロン
SQL Server では、共通テーブル式 (CTE) の前にセミコロンが含まれることがよくあります。図に示すように、ステートメントの以下:
;WITH OrderedOrders AS ( SELECT SalesOrderID, OrderDate, ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber' FROM Sales.SalesOrderHeader ) SELECT * FROM OrderedOrders WHERE RowNumber BETWEEN 50 AND 60
セミコロンの目的
セミコロンには 2 つの目的があります:
曖昧さを避ける: WITH は、次のような他のコンテキストでも使用できます。例:
CTE のコンテキストでは、潜在的な競合を避けるために ;WITH を使用することをお勧めします。 CTE の前にセミコロンで終わらないステートメントがある場合、そのステートメントの一部として WITH を誤って使用すると、予期しない動作が発生する可能性があります。
例
考慮してください。次のステートメント:
DECLARE @foo int; WITH OrderedOrders AS ( SELECT SalesOrderID, OrderDate, ...;
このステートメントは同等ですto:
DECLARE @foo int; ;WITH OrderedOrders AS ( SELECT SalesOrderID, OrderDate, ...;
結論
CTE ステートメントの前に ;WITH を使用すると、SQL Server クエリが明確になり、一貫性が高まります。これにより、曖昧さを回避し、ステートメントが適切に終了するようにして、エラーのリスクを最小限に抑えることができます。
以上がSQL Server で共通テーブル式 (CTE) の前にセミコロンを使用するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。