使用“WITH”子句的 SQL Server 查询出现奇怪的错误

2024-03-17

以下查询:

WITH 
    CteProductLookup(ProductId, oid) 
    AS 
    (
        SELECT p.ProductID, p.oid
        FROM [dbo].[ME_CatalogProducts] p 
    )

SELECT 
    rel.Name as RelationshipName,
    pl.ProductId as FromProductId,
    pl2.ProductId as ToProductId
FROM 
    (
    [dbo].[ME_CatalogRelationships] rel 
    INNER JOIN CteProductLookup pl 
    ON pl.oid = rel.from_oid
    ) 
    INNER JOIN CteProductLookup pl2 
    ON pl2.oid = rel.to_oid
WHERE
    rel.Name = 'BundleItem' AND
    pl.ProductId = 'MX12345';

正在生成此错误:

消息 319,第 15 级,状态 1,第 5 行 关键字附近的语法不正确 '和'。如果这个说法很常见 表表达式,一个 xml 命名空间 子句或更改跟踪上下文 子句,前面的语句必须是 以分号终止。

On 执行仅有的。 Management Studio中的sql语句没有错误/警告。

有任何想法吗?


始终使用 with 语句,例如;WITH那么你永远不会得到这个错误。 WITH 命令需要一个;在它和任何先前的命令之间,始终使用;WITH你永远不必记得这样做。

see WITH common_table_expression (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms175972.aspx,来自该部分创建和使用公用表表达式的指南:

当 CTE 用于以下语句时 是批处理的一部分,该语句 之前必须跟一个 分号。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用“WITH”子句的 SQL Server 查询出现奇怪的错误 的相关文章

随机推荐