【发布时间】:2018-02-12 10:08:06
【问题描述】:
我有一个表格测试,其中 1 列的数据类型为 ntext。
我正在写下面的查询:
when matched and TARGET.Module_ID<>SOURCE.Module_ID
THEN
UPDATE SET TARGET.Module_ID=SOURCE.Module_ID
但它给了我一个错误
The data types ntext and ntext are incompatible in the not equal to operator.
然后我将查询更改为
when matched and TARGET.convert(varchar(max),Module_ID) <> SOURCE.convert(varchar(max),Module_ID)
它给了我一个错误
Incorrect syntax near the keyword 'convert'.
查询有什么问题?
【问题讨论】:
-
您的表格设计似乎不一致。更改列数据类型,错误就会消失!如果您必须进行转换/投射才能加入,那么您就如履薄冰。
-
CONVERT是保留关键字。你必须逃脱它[CONVERT] -
TARGET.Convert?CONVERT的正确语法是CONVERT([datatype], [source column])。没有优先关键字。
标签: sql sql-server sql-server-2008 merge