2012-03-28 51 views
0
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 

我的目的是更新与另一列NTEXT的DataColumn是填补TBL2TBL1如何与NTEXT值

我不能改变的数据类型为数据库是不是我的数据库。

当我写上述内容时,一切都应该没有问题。

但我有这个错误信息。

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

任何想法如何克服这一点?

回答

0

你的目的是填写TBL2,但在你的代码中填写tabl1。

而你想设置ID?值?

试试这个吗?

UPDATE t2 
SET t2.VALUE = t1.VALUE 
FROM tbl2 t2 
     LEFT JOIN tbl1 t1 
     ON t1.id = t2.id 
0

你可以尝试这样的事情:

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将被视为=,因为比较字符串中没有通配符。

0

这将Link将详细解释文字和文字比较