Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kesalahan CTE:Jenis tidak cocok antara jangkar dan bagian rekursif

Persis seperti yang tertulis:

'name1' memiliki tipe data yang berbeda dengan 'name' + CAST((rn+1) as varchar(255))

Coba ini (belum diuji)

;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

Pada dasarnya, Anda juga harus memastikan panjangnya cocok. Untuk bit rekursif, Anda mungkin harus menggunakan CAST('name' AS varchar(4)) jika gagal lagi



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan APP_NAME() untuk Mendapatkan Nama Aplikasi dari Sesi Saat Ini di SQL Server

  2. Apakah ada SQL Server Profiler untuk SQL Server Express?

  3. Variabel peka huruf besar/kecil di SQL Server

  4. Kode VBA untuk Menambahkan Tabel Tertaut dengan Kunci Utama

  5. Mengotomatiskan Database Model Tabular Processing of Analysis Services (SSAS) di SQL Server