Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Błąd CTE:typy nie pasują do kotwicy i części rekurencyjnej

Dokładnie to, co mówi:

'name1' ma inny typ danych niż 'name' + CAST((rn+1) as varchar(255))

Spróbuj tego (nieprzetestowane)

;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

Zasadniczo musisz upewnić się, że długość też się zgadza. W przypadku bitu rekurencyjnego może być konieczne użycie CAST('name' AS varchar(4)) jeśli znowu się nie powiedzie



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak ustawić opcję maxrecursion dla CTE wewnątrz funkcji Table-Valued-Function?

  2. Implementacja wyszukiwania pełnotekstowego w SQL Server 2016 dla zaawansowanych użytkowników

  3. jak znaleźć rozmiar wiersza w tabeli

  4. Jak przywrócić bazę danych z C#

  5. Jak przekazać wartość do parametru procedury składowanej w składniku źródłowym OLE DB?