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

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

ПримечаниеПримечание

Если у хранимой процедуры sp_tableoption параметр large value types out of row установлен в значение OFF, то внутристроковый предел для типов больших значений будет равен 8000 байт. 16-байтовое основание хранится внутри строки, если этот параметр в положении ON. Дополнительные сведения см. в разделе sp_tableoption (Transact-SQL).

ПримечаниеПримечание

В случае репликации данных может потребоваться установка параметра Параметр max text repl size в значение -1.

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

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

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

Типы данных больших значений

LOB из предыдущих версий

varchar(max)

text*

nvarchar(max)

ntext*

varbinary(max)

image

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

Важное примечаниеВажно!

Используйте типы данных 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 для столбцов типов данных больших значений, указанных в таблицах inserted и deleted. Дополнительные сведения см. в разделе CREATE TRIGGER (Transact-SQL).

  • Строковые функции

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

    Дополнительные сведения о строковых функциях см. в разделе Строковые функции (Transact-SQL).

См. также

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