我正在尝试将一个字符串和一个列值与以下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.
请帮忙吗?
答案 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))
顺便说一句,你应该考虑到:
+ (String Concatenation) (Transact-SQL)在SQL Server上不起作用 ntext数据类型。
事实上,不推荐使用ntext:
将来的版本中将删除ntext,text和image数据类型 的MicrosoftSQL Server。避免在新的中使用这些数据类型 开发工作,并计划修改当前使用的应用程序 他们。请改用nvarchar(max),varchar(max)和varbinary(max)。