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中文网其他相关文章!