Как лучше всего добавить текст в текстовое поле с помощью t-sql в Sql Server 2005?
Я бы сделал это с помощью varchar.
update tablename set fieldname = fieldname + 'appended string'
Но это не работает с текстовым полем.
К сожалению, это не сработало. Я получил «Типы данных text и nvarchar несовместимы в операторе добавления». Спасибо хоть.


Скопировано по ссылке:
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(ntextThing)
FROM item
WHERE id =1
UPDATETEXT table.ntextthing @ptrval NULL 0 '!'
GO
в 2005 вы должны использовать varchar (max) или nvarchar (max), эти столбцы будут работать с обычными функциями varchar. Текст и ntext устарели
Попробуй это:
update
tablename
set
fieldname = convert(nvarchar(max),fieldname) + 'appended string'
Ну, по крайней мере, я знал, что это какая-то ошибка преобразования. :) Спасибо, Bravax.
Если fieldname имеет значение null, это не сработает. вместо имени поля попробуйте COALESCE (имя поля, '')
Максимальная длина varchar (max) составляет 2 147 483 647 символов. Это то же самое, что и текстовый тип данных.
Какой бы текст ни содержал, он может удерживать, поэтому вам не нужно беспокоиться о нехватке места, переключившись на VARCHAR (MAX).
Я бы сказал, что это должно сработать. Вероятно, проблема связана с преобразованием / трансляцией. Попробуйте fieldname = fieldname + N'appended string '