我想投一个字符串,用下面的SQL commant串接一列值:演员串+ NTEXT到nvarchar的错误
Msg 402, Level 16, State 1, Line 1
The data types varchar and ntext are incompatible in the add operator.
:
CAST('Strign:'+[KlirAn] as NVARCHAR(max))
执行这个命令我碰到下面的错误后
请帮忙吗?
我想投一个字符串,用下面的SQL commant串接一列值:演员串+ NTEXT到nvarchar的错误
Msg 402, Level 16, State 1, Line 1
The data types varchar and ntext are incompatible in the add operator.
:
CAST('Strign:'+[KlirAn] as NVARCHAR(max))
执行这个命令我碰到下面的错误后
请帮忙吗?
的问题是,'Strign:'
是varchar
和[KlirAn]
是NTEXT
,那么一个可能的解决方法是:
CAST('Strign:'+CAST([KlirAn] AS VARCHAR(max)) as NVARCHAR(max))
正如评论@Damien_The_Unbeliever状态,它不是这是最好的方式,但它的工作原理。
你也可以采取在SQL(VARCHAR为nvarchar)的隐式转换和简单的优势:
'Strign:' + CAST([KlirAn] AS NVARCHAR(max))
BTW,你应该考虑到:
的+ (String Concatenation) (Transact-SQL)不在SQL Server上使用 ntext数据类型。
事实上,NTEXT被弃用:
ntext, text, and image data types will be removed in a future version of MicrosoftSQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use
them. Use nvarchar(max), varchar(max), and varbinary(max) instead.
为什么要将'KlirAn',一个'NTEXT'列转换为**'VARCHAR' **,稍后,在对字符串进行了修改之后,将结果转换回NVARCHAR?为什么不在整个过程中保持'N'? –
确实,编辑了我的答案。 –
试试这个
SELECT
'String:'+CONVERT(NVARCHAR(max),[KlirAn])
FROM table
什么是KlirAn的数据类型? –
我假设[KlirAn]是ntext? –
请为列**'[KlirAn]'** – Luv