SQL Server Text, NText, проблема типа данных изображения
-
09-10-2019 - |
Вопрос
Microsoft объявила, что: «ntext
, text
, а также image
Типы данных будут удалены в будущей версии Microsoft SQL Server. "И советует использовать nvarchar(max)
, varchar(max)
, а также varbinary(max)
вместо.
Мой вопрос: у меня есть тип данных больше, чем 8 КБ. Как я могу вставить эти данные в SQL? Какой тип данных решит мою проблему?
Решение
Любой из nvarchar (макс), Varchar (Макс), а также Варбинарный (Макс).
Nvarchar (Max) и varchar (max) предназначены для текстовой информации (с Nvarchar, имеющим поддержку Unicode).
varbinary (max) предназначен для двоичных данных (изображений, файлов и т. Д.).
Во всех случаях документировано, что использование MAX
indicates that the maximum storage size is 2^31-1 bytes.
Другие советы
Если это текстовые данные, то либо varchar(max)
или nvarchar(max)
(Поддерживает Unicode). Varchar (Max) имеет максимальный размер хранения 2 ^ 31-1 байта (Реф.)
Если это двоичные данные, то используйте varbinary(max)
.
Не путайте бит «Варечар».
Это в основном означает, что вы можете использовать большинство функций на varchar(max)
Как вы бы на Varchar (50)or
varchar (1000)or
varchar (8000) `.
- (MAX) DataTypes поддерживает 2 ^ 32-1 байты
- Типы не MAX поддерживают до 8000 байтов
Так что вы можете иметь varchar(50)
или varchar(1000)
вплоть до varchar(8000)
Но для хранения более длинных струн вы будете использовать varchar(max)
.
BIT «MAX» или «50» / «1000» / «8000» / «1000» / «8000» просто определяет внутреннее хранилище + максимальную длину строки.
Там несколько незначительных различий, таких как индексация, конечно.
Вы бы использовали либо nvarchar(max)
, varchar(max)
или varbinary(max)
Если вы вставите данные, превышающие ограничения строки 8 КБ, данные перемещаются вне строки на другую страницу в блоке распределения row_overflow_data.
Последующий MSDN Статья объясняет этот процесс более подробно.
Я верю, что максимум для Varchar (Max) составляет 2 ГБ.