#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 (максимум)