usando texto separar recursivas por jerárquicas ejemplos delimitada consultas comas columnas cadena sql-server

sql-server - texto - substring sql



Obteniendo un error extraño, consulta SQL Server usando la cláusula `WITH` (3)

La siguiente consulta:

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'';

Está generando este error:

Msg 319, nivel 15, estado 1, línea 5 Sintaxis incorrecta cerca de la palabra clave ''con''. Si esta instrucción es una expresión de tabla común, una cláusula xmlnamespaces o una cláusula de contexto de seguimiento de cambios, la instrucción anterior debe terminarse con un punto y coma.

Solo en ejecución . No hay errores / advertencias en la declaración sql en el estudio de gestión.

¿Algunas ideas?


Debería ser legal poner un punto y coma directamente antes de la palabra clave WITH.


siempre use con una declaración como ;WITH entonces nunca obtendrá este error. El comando WITH requería a ; entre cualquier comando anterior, usando siempre ;WITH nunca tendrás que recordar hacer esto.

vea WITH con common_table_expression (Transact-SQL) , de la sección Pautas para crear y usar expresiones de tabla comunes:

Cuando se usa un CTE en una declaración que es parte de un lote, la declaración anterior debe ir seguida de un punto y coma.


;WITH CteProductLookup(ProductId, oid) AS ...