Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обновляет существующее поле text, ntext или image. Используйте UPDATETEXT для изменения только части столбца text, ntext или image. Используйте WRITETEXT для обновления и замены всего поля text, ntext или image.
Важно! |
|---|
В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого пользуйтесь типами данных большого объема и предложением .WRITE инструкции UPDATE. |
Соглашения о синтаксисе в Transact-SQL
Синтаксис
UPDATETEXT [BULK] { table_name.dest_column_name dest_text_ptr }
{ NULL | insert_offset }
{ NULL | delete_length }
[ WITH LOG ]
[ inserted_data
| { table_name.src_column_name src_text_ptr } ]
Аргументы
BULK
Включает внешние средства для передачи потока двоичных данных. Поток должен быть передан средством на уровне протокола TDS. В отсутствие потока данных обработчик запросов не учитывает параметр BULK.
Важно!Рекомендуется не использовать параметр BULK в приложениях с поддержкой SQL Server. Этот параметр может быть изменен или удален в следующих версиях SQL Server.
table_name . dest_column_name
Имя таблицы и обновляемого столбца text, ntext или image. Имена таблиц и имена столбцов должны соответствовать правилам для идентификаторов. Указание имени базы данных и владельца необязательно.dest_text_ptr
Значение текстового указателя (возвращается функцией TEXTPTR), который указывает на обновляемые данные типа text, ntext или image. Аргумент dest_text_ptr должен иметь значение binary(16).insert_offset
Начальная позиция для обновления. Отсчет начинает с нуля. Для столбцов text или image insert_offset является числом байтов, которые необходимо пропустить с начала существующего столбца, перед вставкой новых данных. Для столбцов ntext аргумент insert_offset является набором символов (каждый символ имеет тип ntext и занимает 2 байта). Существующие данные text, ntext или image, начиная с этой начальной позиции (отсчет начинает с нуля), сдвигаются вправо, чтобы освободить место для новых данных. При значении 0 новые данные вставляются в начало существующих данных. Если значение равно NULL, новые данные добавляются в конец существующих.delete_length
Длина удаляемых данных из существующего столбца text, ntext или image начиная с позиции, указанной в аргументе insert_offset. Значение аргумента delete_length задается в байтах для столбцов text и image и в символах для столбцов ntext. Каждый символ ntext занимает 2 байта. При значении 0 данные не удаляются. При значении NULL удаляются все данные с позиции, указанной аргументом insert_offset , до конца существующего столбца text или image.WITH LOG
Ведение журнала определяется моделью восстановления, действующей для базы данных.inserted_data
Вставляемые в существующий столбец text, ntext или image данные на позиции insert_offset. Это одиночное значение типа char, nchar, varchar, nvarchar, binary, varbinary, text, ntext или image. Аргумент inserted_data может быть литералом или переменной.table_name.src_column_name
Имя таблицы и столбца text, ntext или image, используемого в качестве источника вставляемых данных. Имена таблиц и имена столбцов должны соответствовать правилам для идентификаторов.src_text_ptr
Значение текстового указателя (возвращается функцией TEXTPTR), который указывает на столбец text, ntext или image, используемый в качестве источника вставляемых данных.
ПримечаниеЗначение scr_text_ptrне должно равняться значению dest_text_ptr.
Замечания
Вставленные данные могут быть константой inserted_data, именем таблицы, именем столбца или указателем на текст.
Операция обновления |
Параметры UPDATETEXT |
|---|---|
Для замены существующих данных |
Укажите значение аргумента insert_offset, отличное от NULL, ненулевое значение аргумента delete_length и новые вставляемые данные. |
Для удаления существующих данных |
Укажите значение аргумента insert_offset, отличное от NULL, и ненулевое значение аргумента delete_length. Не указывайте вставляемые данные. |
Для вставки новых данных |
Укажите значение аргумента insert_offset, отличное от NULL, значение аргумента delete_length, равное 0, и вставляемые данные. |
Для улучшения производительности рекомендуется вставлять и обновлять данные text, ntext и image фрагментами с размером, кратным 8 040 байт.
В SQL Server внутристрочные текстовые указатели на данные text, ntext или image могут существовать, но могут быть неверными. Дополнительные сведения об этом параметре text in row см. в документации по sp_tableoption (Transact-SQL). Дополнительные сведения о допустимости указателей текста см. в разделе sp_invalidate_textptr (Transact-SQL).
Для присвоения столбцам типа text значения NULL используйте функцию WRITETEXT. Функция UPDATETEXT записывает в столбцы типа text пустую строку.
Разрешения
Необходимо разрешение UPDATE на указанную таблицу.
Примеры
Следующий пример присваивает локальной переменной @ptrval значение текстового указателя и использует UPDATETEXT для исправления грамматической ошибки.
Примечание |
|---|
Чтобы выполнить этот пример, необходимо установить базу данных pubs. |
USE pubs;
GO
ALTER DATABASE pubs SET RECOVERY SIMPLE;
GO
DECLARE @ptrval binary(16);
SELECT @ptrval = TEXTPTR(pr_info)
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id
AND p.pub_name = 'New Moon Books'
UPDATETEXT pub_info.pr_info @ptrval 88 1 'b';
GO
ALTER DATABASE pubs SET RECOVERY FULL;
GO