Мне нужно хранить двоичные файлы в базе данных SQL Server. Каков лучший тип данных из Varbinary и Image?
VarBinary vs Image SQL Server для сохранения двоичных данных?
Ответ 1
Поскольку изображение устарело, вы должны использовать varbinary.
per Microsoft (спасибо за ссылку @Christopher)
текстовые, текстовые и графические типы данных будут удалены в будущем версии Microsoft SQL Server. Избегайте использования этих типов данных в новых разработки и планировать изменение приложений, которые в настоящее время используются их. Вместо этого используйте nvarchar (max), varchar (max) и varbinary (max).
Фиксированные и переменные типы данных для хранения больших не-Unicode и Юникод-символ и двоичные данные. Данные Unicode используют UNICODE UCS-2 набор символов.
Ответ 2
varbinary(max)
- это способ (представлен в SQL Server 2005)
Ответ 3
Существует также довольно spiffy FileStream
, представленный в SQL Server 2008.
Ответ 4
https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql
изображение
Бинарные данные переменной длины от 0 до 2 ^ 31-1 (2 147 483 647) байт. Тем не менее он поддерживает использование типа данных изображения, но должен знать:
https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql
varbinary [(n | max)]
Бинарные данные переменной длины. n может быть значением от 1 до 8000. max указывает, что максимальное хранилище размер составляет 2 ^ 31-1 байта. Размер хранилища - это фактическая длина введенные данные + 2 байта. Введенные данные могут быть 0 байтами в длина. Синоним ANSI SQL для varbinary изменяется двоично.
Итак, оба одинаково по размеру (2 ГБ). Но имейте в виду:
Хотя конец типа данных "image" все еще не определен, вы должны использовать эквивалент "будущего".
Но вы должны спросить себя: зачем хранить BLOBS в столбце?