CTE(公用表表達式)和分號:為什麼要使用它?
在 SQL Server 中,CTE(公用表表達式)語句通常在表達式之前有一個分號。這不是 SQL Server 中語句終止的要求,那麼為什麼它會與 CTE 一起使用?
一個原因是為了避免歧義。除了CTE 之外,WITH 還可以在其他上下文中使用,例如:
在CTE先前使用分號可確保它不會被誤認為是其他其中之一
此外,儘管 SQL Server 中的語句可以選擇以分號終止,但最佳實踐是一致使用它們。這可以防止語句未正確終止時可能發生的錯誤。
特別是對於 CTE,在表達式之前使用分號可確保前面的任何語句都正確終止。例如:
DECLARE @foo int; WITH OrderedOrders AS ( SELECT SalesOrderID, OrderDate, ...
等價於:
DECLARE @foo int ;WITH OrderedOrders AS ( SELECT SalesOrderID, OrderDate, ...
透過在CTE表達式前使用分號,可以明確前面的DECLARE語句終止。
同樣,MERGE 指令需要在 MERGE 語句之前有分號,即使它不是 CTE。這再次防止了歧義並確保正確的語句終止。
以上是為什麼在 SQL Server 中的 CTE 之前要使用分號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!