sql >> Databáze >  >> RDS >> Sqlserver

Chyba CTE:Typy se mezi kotvou a rekurzivní částí neshodují

Přesně to, co říká:

'name1' má jiný datový typ než 'name' + CAST((rn+1) as varchar(255))

Zkuste toto (netestováno)

;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

V zásadě musíte zajistit, aby se délka také shodovala. Pro rekurzivní bit možná budete muset použít CAST('name' AS varchar(4)) pokud znovu selže



  1. Jak vytvořit primární klíč v SQL Server (příklady T-SQL)

  2. Výzkum pomalosti PostGIS (vydání 2019)

  3. Oracle - Proč zmizí úvodní nula čísla při převodu na TO_CHAR

  4. Jak zajistím, aby rozšíření SQLSRV fungovalo s PHP, protože MSSQL je zastaralé?