正確に言うと:
'name1'
'name' + CAST((rn+1) as varchar(255))
とは異なるデータ型があります
これを試してください(テストされていません)
;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
基本的に、長さも一致するようにする必要があります。再帰ビットの場合、CAST('name' AS varchar(4))
を使用する必要がある場合があります 再び失敗した場合