Sql server 如何将数据附加到SQL Server中的现有行

Sql server 如何将数据附加到SQL Server中的现有行,sql-server,append,Sql Server,Append,我正在尝试将数据附加到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”附近的语法不正确 这是由于不正确的Cast语句造成的,请参见

我正在尝试将数据附加到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”附近的语法不正确


这是由于不正确的Cast语句造成的,请参见下面的更正:

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

谢谢Kokkie,但现在我得到了以下信息:数据类型nvarchar(max)和ntext在add操作符中不兼容。当我将nvarchar更改为ntext时,我得到的操作数数据类型ntext对于add operator.ok无效,因此字段的类型是ntext而不是nvarchar。您应该将nvarchar(max)替换为ntext。当我将nvarchar更改为ntext时,我得到的操作数数据类型ntext对于add运算符无效。@user3801599:
ntext
text
,以及
image
数据类型将在SQL Server的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。改用
nvarchar(max)
varchar(max)
varbinary(max)
。改变柱的类型,然后它应该工作;ALTER TABLE OINV ALTER列U_CollectionNotes nvarchar(最大值)