Как мне добавить данные к существующей строке в SQL Server

#sql-server #append

#sql-сервер #добавить

Вопрос:

Я пытаюсь добавить данные к существующей строке в таблице SQL Server. Но я получаю синтаксическую ошибку рядом с предложением where.

Вот мой запрос:

 update OINV
set U_CollectionNotes = Cast('Cancelled 07.01.14., as nvarchar(max))'   U_CollectionNotes
where oinv.DocNum = 47651
  

Ошибка:

Сообщение 156, уровень 15, состояние 1, строка 3
Неправильный синтаксис возле ключевого слова ‘where’.

Ответ №1:

Это связано с неправильным оператором приведения, смотрите Исправление ниже:

 update OINV 
set U_CollectionNotes = Cast('Cancelled 07.01.14' as nvarchar(max))   U_CollectionNotes 
where oinv.DocNum = 47651
  

Комментарии:

1. Спасибо Kokkie, но теперь я получаю следующее: типы данных nvarchar (max) и ntext несовместимы в операторе добавления. и когда я меняю nvarchar на ntext, я получаю тип данных операнда ntext, недопустимый для оператора add.

2. хорошо, итак, поле имеет тип ntext вместо nvarchar. Вы должны заменить nvarchar (max) на ntext.

3. когда я меняю nvarchar на ntext, я получаю тип данных операнда ntext, недопустимый для оператора add.

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

5. Измените тип столбца, и тогда он должен работать; ИЗМЕНИТЕ ТАБЛИЦУ OINV, ИЗМЕНИТЕ СТОЛБЕЦ U_CollectionNotes nvarchar (максимум)