SQL Server text, ntext, проблема с типом данных изображения - PullRequest
3 голосов
/ 06 декабря 2010

Microsoft объявила, что: «ntext, text и image типы данных будут удалены в будущей версии Microsoft SQL Server».И советует использовать nvarchar(max), varchar(max) и varbinary(max).

Мой вопрос: у меня тип данных больше 8 кб.Как я могу вставить эти данные в SQL?Какой тип данных решит мою проблему?

MSDN документ о типах данных

Ответы [ 4 ]

2 голосов
/ 06 декабря 2010

Если это текстовые данные, то либо varchar(max), либо nvarchar(max) (поддерживает юникод). Максимальный размер хранилища varchar (max) составляет 2 ^ 31-1 байт ( Ref .)

Если это двоичные данные, используйте varbinary(max).

2 голосов
/ 06 декабря 2010

Любой из nvarchar (макс.) , varchar (макс.) и varbinary (макс.) .

nvarchar (макс.) Иvarchar (max) для текстовой информации (nvarchar поддерживает unicode).

varbinary (max) для двоичных данных (изображений, файлов и т. д.).

Во всех случаях это задокументированочто с использованием MAX indicates that the maximum storage size is 2^31-1 bytes.

0 голосов
/ 06 декабря 2010

Не смущайте бит "varchar".

В основном это означает, что вы можете использовать большинство функций на varchar(max), как на varchar (50) or varchar (1000) * 1005.* varchar (8000) `.

  • Типы данных (max) поддерживают 2 ^ 32-1 байта
  • Типы не max поддерживают до 8000 байтов

Таким образом, вы можете иметь varchar(50) или varchar(1000) до varchar(8000), но для хранения более длинных строк вы должны использовать varchar(max).

"max" или "50" / "1000" / "8000 "бит просто определяет внутреннее хранилище + максимальную длину строки.

Есть несколько незначительных различий, таких как индексация, конечно.

0 голосов
/ 06 декабря 2010

Вы можете использовать либо nvarchar(max), varchar(max), либо varbinary(max)

Если вы вставляете данные, размер которых превышает ограничение строки 8 КБ, данные перемещаются вне строки на другую страницу в единице выделения ROW_OVERFLOW_DATA.

Следующая статья MSDN объясняет этот процесс более подробно.

Я полагаю, что максимальное значение для varchar (max) составляет 2 ГБ.

...