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

Jak przechowywać ciąg znaków var większy niż varchar(max)?

Poważnie - VARCHAR(MAX) może przechowywać do 2 GB danych - nie tylko 8000 znaków....

Spróbuj tego:

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)

Zwróci to wartość wyższą niż 8000 znaków po 1000 iteracjach.

Chodzi o to, że jeśli używasz varchar(max) , pamiętaj, aby zawsze przesyłać wszystkie twoje ciągi do varchar(max) wyraźnie - tak jak zrobiłem w tym przykładzie. W przeciwnym razie SQL Server powróci do „zwykłego” varchar przetwarzanie, a to rzeczywiście jest ograniczone do 8000 znaków....




  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 znaleźć przyczynę błędów zgłoszonych w śledzeniu programu SQL Server profilera?

  2. INT vs Unique-Identifier dla pola ID w bazie danych

  3. Ustaw wszystkie wartości 0 na NULL

  4. Wyeliminuj i zmniejsz nakładające się zakresy dat

  5. Błąd zwracania CTE