sql >> Base de Datos >  >> RDS >> Sqlserver

Error CTE:los tipos no coinciden entre el ancla y la parte recursiva

Exactamente lo que dice:

'name1' tiene un tipo de datos diferente a 'name' + CAST((rn+1) as varchar(255))

Prueba esto (no probado)

;with cte as
(
select 1 as rn, CAST('name1' as varchar(259)) as nm
union all
select rn+1,nm = 'name' + CAST((rn+1) as varchar(255))
from cte a where rn<10)
select * from cte

Básicamente, también debe asegurarse de que la longitud coincida. Para el bit recursivo, es posible que deba usar CAST('name' AS varchar(4)) si vuelve a fallar