Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Грешка в CTE:Типовете не съвпадат между котвата и рекурсивната част

Точно това, което пише:

'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)) ако отново се провали



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Списък с формати за дата, налични с CONVERT() в SQL Server

  2. Връщане на множество таблици от съхранена процедура

  3. WinRT System.Data - Свързване към SQL

  4. 4 функции за форматиране на число до 2 десетични знака в SQL Server

  5. Одит на данни в NHibernate и SqlServer