TBL1
ID Value
1 A
2 B
3 C
TBL2
ID Value
1
2
3
UPDATE TBL1
SET TBL1.ID= TBL2.ID
FROM
TBL1 t1
INNER JOIN TBL2 t2
ON t1.Value= t2.Value
WHERE t2.ID like '1'
ID - nvarchar(200)
Value - ntext我的目的是从TBL1填充TBL2
我无法更改数据类型,因为该数据库不是我的数据库。
当我写上面的内容时,一切都应该是好的。
但是我有这个错误信息。
Msg 402, Level 16, State 1, Line 16
The data types ntext and ntext are incompatible in the equal to operator.你知道怎么克服这个问题吗?
发布于 2012-03-28 16:50:35
您的目的是填充TBL2,但在示例代码中填充的是tabl1。
你想设置ID吗?价值?
尝尝这个?
UPDATE t2
SET t2.VALUE = t1.VALUE
FROM tbl2 t2
LEFT JOIN tbl1 t1
ON t1.id = t2.id 发布于 2012-03-28 16:53:25
您可以尝试如下所示:
UPDATE TBL1
SET TBL1.ID= TBL2.ID
FROM
TBL1 t1
INNER JOIN TBL2 t2
ON CAST(t1.Value AS NVARCHAR(MAX)) = CAST(t2.Value AS NVARCHAR(MAX))
WHERE t2.ID like '1'根据错误,SQL Server无法比较NTEXT列,但可以通过将这些列转换为NVARCHAR(MAX)来执行比较。
在不相关的注释中,WHERE子句中的LIKE将被视为=,因为比较字符串中没有通配符。
发布于 2012-03-28 18:23:38
这将详细地解释Link和ntext的比较
https://stackoverflow.com/questions/9903931
复制相似问题