Использование типов данных больших значений

В Microsoft SQL Server 2005 имеется признак max. Этот признак расширяет возможности хранения типов данных varchar, nvarchar и varbinary. varchar(max), nvarchar(max) и varbinary(max) вместе называются типами данных больших значений. Можно использовать типы данных больших значений для хранения 2^31-1 байт данных.

ms178158.note(ru-ru,SQL.90).gifПримечание.
Если параметр хранимой процедуры sp_tableoption «типы большого объема выходят за пределы строки» установлен в положение OFF, внутристроковый предел размера типов больших значений составит 8 000 байт. 16-ти байтовое основание хранится внутри строки, если этот параметр в положении ON. Дополнительные сведения см. в разделе sp_tableoption (Transact-SQL).

Поведение типов данных больших значений схоже с поведением их аналогов меньшего объема — varchar, nvarchar и varbinary. Это сходство более эффективно позволяет SQL Server хранить и получать большие символьные данные, данные Юникод и большие двоичные данные.

При использовании типов данных больших значений можно работать с SQL Server таким образом, при котором использование типов данных text, ntext и image более ранних версий SQL Server недоступно. Например, в SQL Server 2005 можно определить переменные, которые могут хранить большие объемы данных — до 2^31 байт символьных, двоичных данных и данных Юникод. Дополнительные сведения см. в разделе Переменные языка Transact-SQL.

Следующая таблица показывает связь между типами данных больших значений и их аналогами из предыдущих версий SQL Server.

Типы данных больших значений LOB из предыдущих версий

varchar(max)

text*

nvarchar(max)

ntext*

varbinary(max)

image

* Клиенты SQL Server версии 6.5 не поддерживают тип данных ntext; поэтому они не распознают nvarchar(max).

ms178158.note(ru-ru,SQL.90).gifВажно!
Используйте типы данных varchar(max), nvarchar(max) и varbinary(max) вместо типов данных text, ntext и image.

Типы данных больших значений демонстрируют такое же поведение, что и их аналоги меньшего объема — varchar(n), nvarchar(n), varbinary(n). Далее описывается использование типов данных больших значений в некоторых конкретных сценариях:

  • Курсоры
    Так как переменные типа данных больших значений можно определить, данные столбцов FETCH типа данных больших значений могут быть помещены в локальные переменные. Дополнительные сведения см. в разделе FETCH (Transact-SQL).
    Использование типов данных больших значений не влияет на использование курсора, что вызывает преобразование типа курсора.
  • Обновления фрагментов данных
    Инструкция UPDATE теперь поддерживает предложение **.**WRITE( ) для выполнения частичных обновлений соответствующих столбцов типов данных больших значений. Это аналогично операциям над указателями текста WRITETEXT и UPDATETEXT, которые поддерживаются для типов данных text, ntext, image в более ранних версиях SQL Server. Дополнительные сведения см. в разделе UPDATE (Transact-SQL).
  • Триггеры
    Ссылки на триггеры AFTER допустимы для столбцов типов данных больших значений во вставленных и удаленных таблицах. Дополнительные сведения см. в разделе CREATE TRIGGER (Transact-SQL).
  • Строковые функции
    Встроенные строковые функции, которые работают с символьными и двоичными данными, были усовершенствованы для поддержки типов данных больших значений в качестве аргументов. Эти функции представлены ниже:

См. также

Основные понятия

Типы данных (компонент Database Engine)

Справка и поддержка

Получение помощи по SQL Server 2005