1
我试图只替换我们公司数据库中的一部分字符串。我试图更新的列是MERGECODES (varchar(20),null)
。这个列的典型值是'M, GPE, T'
。SQL REPLACE给出错误:'字符串或二进制数据将被截断。'
我想用KD
代替T
的每个实例,但是我得到下面的错误。它将允许我改变任何具有相同字符数或更少的字符,例如,它允许我用K
替换T
,但不能用KD
替换。任何帮助将不胜感激。多谢你们!
代码:
UPDATE GoldMine.dbo.CONTACT1
SET MERGECODES = REPLACE(MERGECODES, 'T', 'KD')
错误:
Msg 8152, Level 16, State 14, Line 1
String or binary data would be truncated. The statement has been terminated.
如果你确实在'varchar(20)'列中有'M,GPE,T',并且执行了'REPLACE',那么这个工作没有任何问题。我在想,你可能正在更新**太多的行**,并且你的'UPDATE'语句命中的行中至少有一行在'REPLACE'的列中包含了太多的字符。尝试使用'WHERE id = 42'或其他子句 - 以便更新**只有一行,您知道这是行。 – 2012-08-14 15:05:17
感谢marc_s,这是有道理的。 – ajodom10 2012-08-14 15:33:39
**为什么有人投下这个问题?如果我在这里做错了,请告诉我。** – ajodom10 2012-08-14 15:34:47