sql >> Database >  >> RDS >> Sqlserver

CTE-fout:typen komen niet overeen tussen het anker en het recursieve deel

Precies wat er staat:

'name1' heeft een ander gegevenstype dan 'name' + CAST((rn+1) as varchar(255))

Probeer dit (niet getest)

;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

Kortom, je moet er ook voor zorgen dat de lengte overeenkomt. Voor het recursieve bit moet u wellicht CAST('name' AS varchar(4)) gebruiken als het weer mislukt



  1. Hoe kan ik een lijst met elementnamen krijgen van een XML-waarde in SQL Server?

  2. Oracle JDeveloper 12c gebruiken met Oracle Database 12c op Oracle Cloud Platform, deel 1

  3. IP-adres opslaan in MySQL-database met behulp van PHP

  4. Back-up / herstel SQLlite-database naar map Google Drive-app