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
...