Ich habe ein Feld zum Speichern einiger Daten, das Feld wird als deklariert varchar(max)
. Nach meinem Verständnis sollte dies 2^31 - 1
Zeichen speichern , aber wenn ich etwas Inhalt über 8000 Zeichen eingebe, schneidet es den Rest ab.
Ich habe überprüft, dass alle Daten in meiner Aktualisierungsanweisung enthalten sind und die Abfrage überall gut aussieht, aber wenn ich die Daten wieder auswähle, wurde sie abgeschnitten.
Die Daten werden abgeschnitten, wenn ich sie auf meiner Website anzeige und wenn ich dazu SSMS verwende select content from table
.
select DATALENGTH (content) from table
kommt als 8000 zurück.
Ich habe die Daten mit diesem: update table set content = 'my long content' where id = 1
. Der Inhalt enthält viel HTML, aber ich kann nicht erkennen, dass dies Probleme verursacht. Das einzige, was ich sehen kann, ist das Ersetzen von allen "
durch, ''
da dies vom Benutzer eingegebener Inhalt ist (ich kann mich nicht erinnern, warum ich das jetzt getan habe).
Ich habe es geschafft, den Inhalt korrekt einzugeben, indem ich alle einzelnen Anführungszeichen im Inhalt entfernt habe, sodass ich denke, dass etwas Seltsames mit meinen Daten und nicht mit der Datenbank los ist.
Sollte ich mit der Abfrage etwas Besonderes tun, um ein varchar(max)
Feld zu verwenden?
Verwenden von: SQL Server 2008 (10.50) 64-Bit.
quelle