it-swarm.com.de

VarBinary vs Image SQL Server-Datentyp zum Speichern von Binärdaten?

Ich muss Binärdateien in der SQL Server-Datenbank speichern. Welcher Datentyp ist aus Varbinary und Image der bessere?

86
Yoann. B

Da das Image veraltet ist, sollten Sie Varbinary verwenden.

per Microsoft (danke für den Link @Christopher)

die Datentypen ntext, text und image werden in einer zukünftigen Version von Microsoft SQL Server entfernt. Vermeiden Sie es, diese Datentypen in neuen Entwicklungsarbeiten zu verwenden, und planen Sie, Anwendungen zu ändern, die sie derzeit verwenden. Verwenden Sie stattdessen nvarchar (max), varchar (max) und varbinary (max).

Feste und variable Datentypen zum Speichern großer Nicht-Unicode- und Unicode-Zeichen und Binärdaten. Unicode-Daten verwenden den UNICODE UCS-2-Zeichensatz.

135
cmsjr

varbinary(max) ist der richtige Weg (eingeführt in SQL Server 2005)

13
SQLMenace

Es gibt auch das ziemlich schicke FileStream , das in SQL Server 2008 eingeführt wurde.

9
Andrew Rollings

https://docs.Microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql

Bild

Binärdaten variabler Länge von 0 bis 2 ^ 31-1 (2.147.483.647) Bytes. Es wird immer noch IS unterstützt, Bilddatentypen zu verwenden, aber beachten Sie Folgendes:

https://docs.Microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql

varbinary [(n | max)]

Binärdaten variabler Länge. n kann ein Wert von 1 bis 8.000 sein. max gibt an, dass die maximale Speichergröße 2 ^ 31-1 Byte beträgt. Die Speichergröße ist die tatsächliche Länge der eingegebenen Daten + 2 Bytes. Die eingegebenen Daten können 0 Byte lang sein. Das ANSI SQL-Synonym für varbinary ist binär variierend.

Beide sind also gleich groß (2GB). Beachten Sie jedoch Folgendes:

https://docs.Microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016#features-not-supported-in-a- zukünftige-version-von-sql-server

Obwohl das Ende des Datentyps "image" noch nicht festgelegt ist, sollten Sie das zukunftssichere Äquivalent verwenden.

Aber Sie müssen sich fragen: Warum BLOBS in einer Spalte speichern?

https://docs.Microsoft.com/de-de/sql/relational-databases/blob/compare-options-for-storing-blobs-sql-server

6
Bernhard