Ich speichere Dateien (jeden Typ) in einer SQL-Tabelle, benutze ein varbinary (max), ich finde heraus, dass die maximale Verwendung dieses Datentyps 8000 ist, aber was bedeutet das 8000 ?,
In der Online-Dokumentation steht, dass es 8000 Bytes sind, das heißt, dass die maximale Größe der Datei, die dort gespeichert werden soll, 8000/1024 = 7,8125 KB?,
istIch beginne zu testen und die maximale Datei, die ich speichern kann, ist 29.9 MB, wenn ich eine größere Datei wähle, bekomme ich eine Sqlexception "Zeichenfolge oder binäre Daten würden abgeschnitten werden. Die Anweisung wurde beendet." ...
Vielen Dank für Kommentare.
Implementieren Sie SQL Server 2012 (Codename Denali), wenn es veröffentlicht wird - es hat FileTable
feature:)
varbinary(8000)
ist durch 8000 Bytes begrenzt - das ist sicher! varbinary(max)
ist durch 2 Gigabyte limitiert varbinary(max) FILESTREAM
wird von Ihrem Dateisystem begrenzt (FAT32 - 2 Gb, NTFS - 16 Exabyte) Welche Version von SQL Server verwenden Sie?
Varbinary auf MSDN für SQL Server 2008 gibt explizit an, dass VarBinary (MAX) verwendet werden soll wenn "die Spaltendateneinträge 8.000 Bytes überschreiten."
Außerdem würde ich mir auch die Filestream-Funktionen in SQL Server 2008 ansehen das ist der Server, den Sie verwenden.
Ich habe den Fehler "Zeichenfolge oder binäre Daten werden abgeschnitten" angezeigt, wenn ich versuchte, 5 MB mit varbinary (max) auf SQL Server 2005 zu speichern. Durch das Erhöhen der Größe der automatischen Vergrößerung für die Datenbank wurde das Problem behoben. Nahm mich eine Weile, um herauszufinden, dachte nur, ich würde teilen :)
Tags und Links sql-server