公共表表达式 (CTE) 语句中的分号
在 SQL Server 中,公共表表达式 (CTE) 语句通常在语句前包含分号语句,如下例所示:
;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
这个分号主要有两个作用目的:
..FROM..WITH (NOLOCK).. RESTORE..WITH MOVE..
为了防止混淆,分号用于在WITH之前终止语句,以区别于其他语句use.
当一起使用时,这些因素决定 CTE 语句应在WITH 子句之前终止,以避免歧义。因此,在WITH之前插入分号以确保语句的正确解析。
此规则也适用于MERGE命令,该命令对语句前的分号也有类似的要求。
以上是为什么在 SQL Server 中的公用表表达式 (CTE) 之前使用分号?的详细内容。更多信息请关注PHP中文网其他相关文章!