2013-07-08 42 views
5

我想投一个字符串,用下面的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)) 

执行这个命令我碰到下面的错误后

请帮忙吗?

+0

什么是KlirAn的数据类型? –

+0

我假设[KlirAn]是ntext? –

+0

请为列**'[KlirAn]'** – Luv

回答

13

尝试以下操作:

'String:'+ CAST([KlirAn] as NVARCHAR(max)) 
+0

提供数据库模式表是否有所作为? – Luv

1

的问题是,'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,你应该考虑到:

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.

+0

为什么要将'KlirAn',一个'NTEXT'列转换为**'VARCHAR' **,稍后,在对字符串进行了修改之后,将结果转换回NVARCHAR?为什么不在整个过程中保持'N'? –

+0

确实,编辑了我的答案。 –

3

试试这个

SELECT 
    'String:'+CONVERT(NVARCHAR(max),[KlirAn]) 
FROM table