Подтвердить что ты не робот

Существует ли большая техническая разница между типами данных VARBINARY (MAX) и IMAGE?

Я читал в Интернете эти утверждения о типах SQL Server:

  • VARBINARY(MAX) - Двоичные строки с переменной длиной может сохраняться до 2 ^ 31-1 байт.

  • IMAGE - Двоичные строки с переменная длина до 2 ^ 31-1 (2 147 483 647) байтов.

Существует ли действительно большое техническое различие между типами данных VARBINARY(MAX) и IMAGE?

Если есть разница: нужно ли настраивать, как ADO.NET вставляет и обновляет поле данных изображения в SQL Server?

4b9b3361

Ответ 1

Они сохраняют одни и те же данные: это насколько это возможно.

"image" устарел и имеет ограниченный набор функций и операций, которые работают с ним. varbinary(max) может работать как на более коротком varbinary (то же самое для text и varchar(max)).

Не используйте image для любого нового проекта: просто найдите здесь проблемы, с которыми сталкиваются люди с image и text типами данных из-за ограниченной функциональности.

Примеры из SO: Один, Два

Ответ 2

Я думаю, что технически они похожи, но важно заметить следующее из документацию:

ntext, text и типы данных изображений будут удалены в будущей версии MicrosoftSQL Server. Избегайте использования этих типов данных в новых разработках и планируйте изменять приложения, которые в настоящее время их используют. Вместо этого используйте nvarchar (max), varchar (max) и varbinary (max).

Фиксированные и переменные типы данных для хранения больших символов, отличных от Unicode и Unicode, и > двоичных данных. Данные Unicode используют набор символов UNICODE UCS-2.

Ответ 3

Они сохраняют одни и те же данные: это насколько это возможно.

"образ" устарел и имеет ограниченный набор функций и операций которые работают с ним. varbinary (max) можно использовать как более короткие varbinary (для текста и varchar (max)).

Не используйте изображение для любого нового проекта: просто найдите здесь проблемы у людей есть изображения и текстовые типы данных из-за ограниченного функциональность.

Фактически, VARBINARY может хранить любые данные, которые могут быть преобразованы в массив байтов, например файлы, и это тот же самый процесс, который использует тип данных IMAGE, поэтому, с этой точки зрения, обе данные типы могут хранить одни и те же данные. Но VARBINARY имеет свойство size, а IMAGE принимает любой размер до пределов типа данных, поэтому при использовании типа данных IMAGE вы будете тратить больше ресурсов для хранения одних и тех же данных. В Microsoft® SQL Server® тип данных IMAGE действительно устарел, тогда вы должны делать ставки в типе VARBINARY.

Но будьте осторожны: Microsoft® SQL Server® CE® (включая последнюю версию 4.0), все еще используя тип данных IMAGE, и, вероятно, этот тип данных не будет "исчезать" так скоро, потому что в версиях Compact Edition этот тип данных лучше, чем любой другой для быстрого хранения файлов.

Ответ 4

Я случайно обнаружил одно различие между ними. Вы можете вставить строку в тип изображения, но не в varbinary. Возможно, именно поэтому MS обесценивает тип изображения, так как на самом деле не имеет смысла устанавливать изображение со строкой.