Использование типов данных больших значений
Признак max расширяет возможности хранения типов данных varchar, nvarchar и varbinary. varchar(max), nvarchar(max) и varbinary(max) вместе называются типами данных больших значений. Можно использовать типы данных больших значений для хранения 2^31-1 байт данных.
Примечание |
---|
Если параметр хранимой процедуры sp_tableoption«типы большого объема выходят за пределы строки» установлен в положение OFF, внутристроковый предел размера типов больших значений составит 8 000 байт. 16-байтовое основание хранится внутри строки, если этот параметр в положении ON. Дополнительные сведения см. в разделе sp_tableoption (Transact-SQL). |
Поведение типов данных больших значений схоже с поведением их аналогов меньшего объема — varchar, nvarchar и varbinary. Это сходство более эффективно позволяет SQL Server хранить и получать большие символьные данные, данные Юникод и большие двоичные данные.
При использовании типов данных больших значений можно работать с SQL Server таким образом, при котором использование типов данных text, ntext и image более ранних версий SQL Server недоступно. Так, например, можно определить переменные, способные хранить большие объемы данных — до 2^31 байт символьных, двоичных данных или данных в Юникоде. Дополнительные сведения см. в разделе Переменные языка 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 допустимы для столбцов типов данных больших значений во вставленных и удаленных таблицах. Дополнительные сведения см. в разделе CREATE TRIGGER (Transact-SQL).
Строковые функции
Встроенные строковые функции, которые работают с символьными и двоичными данными, были усовершенствованы для поддержки типов данных больших значений в качестве аргументов. Эти функции представлены ниже:
Дополнительные сведения о строковых функциях см. в разделе Строковые функции (Transact-SQL).