Подтвердить что ты не робот

SQL Server - добавление строки в текстовый столбец (эквивалент concat)

Как добавить строку в столбец SQL Server?

UPDATE [myTable] SET [myText]=' '+[myText]

Это не работает:

Типы данных varchar и текст несовместимы в операторе добавления.

Вы бы использовали concat для MySQL, но как это сделать на SQL Server?

4b9b3361

Ответ 1

как сказано выше, лучше всего установить тип данных столбца на nvarchar (max), но если это невозможно, вы можете сделать следующее с помощью cast или convert:

-- create a test table 
create table test (
    a text
) 
-- insert test value
insert into test (a) values ('this is a text')
-- the following does not work !!!
update test set a = a + ' and a new text added'
-- but this way it works: 
update test set a = cast ( a as nvarchar(max))  + cast (' and a new text added' as nvarchar(max) )
-- test result
select * from test
-- column a contains:
this is a text and a new text added

надеюсь, что поможет

Ответ 2

Остановить использование типа данных TEXT в SQL Server!

Он был устаревшим с версии 2005 года. Используйте VARCHAR(MAX) вместо этого, если вам нужно больше 8000 символов.

Тип данных TEXT не поддерживает обычные строковые функции, тогда как VARCHAR(MAX) делает - ваш оператор будет работать нормально, если вы будете использовать только типы VARCHAR.

Ответ 3

+ (String Concatenation) не работает в SQL Server для типов изображений, ntext или текстовых данных.

Фактически, изображение, текст и текст все устарели.

ntext, text и типы данных изображения будут быть удалены в будущей версии MicrosoftSQL Server. Избегайте использования этих типы данных в новых разработках, и планируют изменить приложения, которые в настоящее время используют их. Используйте nvarchar (max), varchar (max) и varbinary (max) вместо этого.

Тем не менее, если вы используете более старую версию SQL Server, чем хотите использовать UPDATETEXT для выполнения своей конкатенации. Какой Колин Стасюк дает хороший пример в своем блоге Конкатенация строк в текстовом столбце (SQL 2000 и SQL 2005+).

Ответ 4

hmm, попробуйте сделать CAST(' ' AS TEXT) + [myText]

Хотя, я не совсем уверен, как это закончится.

Я также предлагаю не использовать текстовый тип данных, вместо этого используйте varchar.

Если это не сработает, попробуйте ' ' + CAST ([myText] AS VARCHAR(255))

Ответ 5

UPDATE test SET a = CONCAT(a, "more text")

Ответ 6

Присоединить две строки в функции SQL Query use CONCAT (Express1, Express2,...)

Как....

SELECT CODE, CONCAT(Rtrim(FName), " " , TRrim(LName)) as Title FROM MyTable