Использование типов данных больших значений
В Microsoft SQL Server 2005 имеется признак 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 недоступно. Например, в 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).
Важно! |
---|
Используйте типы данных 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). - Строковые функции
Встроенные строковые функции, которые работают с символьными и двоичными данными, были усовершенствованы для поддержки типов данных больших значений в качестве аргументов. Эти функции представлены ниже:- COL_LENGTH
- CHARINDEX
- PATINDEX
- LEN
- DATALENGTH
- SUBSTRING
Дополнительные сведения о строковых функциях см. в разделе Строковые функции (Transact-SQL).
См. также
Основные понятия
Типы данных (компонент Database Engine)