9

我正在尝试转换与以下 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.

请问有什么帮助吗?

4

3 回答 3

18

尝试以下操作:

'String:'+ CAST([KlirAn] as NVARCHAR(max))
于 2013-07-08T09:49:09.217 回答
4

尝试这个

SELECT
  'String:'+CONVERT(NVARCHAR(max),[KlirAn])
FROM table
于 2013-07-08T09:56:22.683 回答
1

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

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

正如@Damien_The_Unbeliever 在评论中所说,这不是最出色的方法,但它确实有效。

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

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

顺便说一句,您应该考虑:

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

于 2013-07-08T09:54:38.857 回答