将字符串+ ntext转换为nvarchar错误

时间:2013-07-08 09:47:26

标签: sql sql-server

我正在尝试将一个字符串和一个列值与以下sql commant连接:

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

执行此命令后,我收到以下错误:

    Msg 402, Level 16, State 1, Line 1
The data types varchar and ntext are incompatible in the add operator.

请帮忙吗?

3 个答案:

答案 0 :(得分:15)

尝试以下方法:

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

答案 1 :(得分:3)

试试这个

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

答案 2 :(得分:1)

问题是'Strign:'varchar[KlirAn]NTEXT,因此可能的解决方法是:

CAST('Strign:'+CAST([KlirAn] AS VARCHAR(max)) as NVARCHAR(max))

正如@Damien_The_Unbeliever在评论中指出的那样,这并不是最好的方式,但它确实有效。

您还可以利用SQL中的隐式转换(VARCHAR TO NVARCHAR)并简单地:

'Strign:' + CAST([KlirAn] AS NVARCHAR(max))
顺便说一句,你应该考虑到:

  

将来的版本中将删除ntext,text和image数据类型   的MicrosoftSQL Server。避免在新的中使用这些数据类型   开发工作,并计划修改当前使用的应用程序   他们。请改用nvarchar(max),varchar(max)和varbinary(max)。