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

Bagaimana cara menyimpan string var lebih besar dari varchar(max)?

Serius - VARCHAR(MAX) dapat menyimpan data hingga 2 GB - bukan hanya 8000 karakter.....

Coba ini:

DECLARE @myVar VARCHAR(MAX) = ''

DECLARE @ix INT = 1

WHILE @ix < 1000
BEGIN
    set @myVar = @myVar + CAST('bla bla bla' AS VARCHAR(MAX))
    SET @ix = @ix + 1
END

SELECT DATALENGTH(@myvar)

Ini akan mengembalikan nilai lebih tinggi dari 8000 karakter setelah 1000 iterasi.

Intinya adalah:jika Anda menggunakan varchar(max) , Anda harus memastikan untuk selalu melempar semua string Anda ke varchar(max) secara eksplisit - seperti yang saya lakukan dalam contoh ini. Jika tidak, SQL Server akan kembali ke varchar "biasa" pemrosesan, dan itu memang terbatas pada 8000 karakter....




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Karena tidak ada parameter array Sqlserver, apa cara terbaik untuk melanjutkan?

  2. Melewati parameter string xml ke prosedur tersimpan SQL Server

  3. Memperbarui parameter laporan berdasarkan pemilihan parameter? (SSRS)

  4. Kolom IDENTITAS SQLServer dengan teks

  5. Permintaan SQL Server untuk menemukan semua izin/akses untuk semua pengguna dalam database