Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: SQL Server Управляемый экземпляр SQL Azure
Обновляет существующее поле типа text, ntext или image. Используйте UPDATETEXT только для изменения части столбца типа text, ntext или image. Используйте WRITETEXT для обновления и замены всего поля типа text, ntext или image.
Внимание
Эта функция будет удалена в будущей версии 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 или imageinsert_offset является числом байтов, которые необходимо пропустить с начала существующего столбца перед вставкой новых данных. Для столбцов типа ntextinsert_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, значение аргумента delete_length, равное 0, и новые вставляемые данные. |
Для достижения оптимальной производительности рекомендуется вставлять или обновлять данные типа text, ntext и image фрагментами, размер которых кратен 8040 байт.
В 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
См. также
READTEXT (Transact-SQL)
TEXTPTR (Transact-SQL)
WRITETEXT (Transact-SQL)