SQL REPLACE给出错误:'字符串或二进制数据将被截断.'

ajo*_*m10 1 sql-server replace truncate

我正在尝试替换公司数据库中的部分字符串.我正在尝试更新的列是MERGECODES (varchar(20),null).这一列的典型值是类似的'M, GPE, T'.

我想更换的每个实例TKD,但我发现下面的错误.这将让我有相同数目的字符或更少的任何改变,例如,它可以让我来代替TK,但不是KD.任何帮助将不胜感激.多谢你们!

码:

UPDATE GoldMine.dbo.CONTACT1 
SET MERGECODES = REPLACE(MERGECODES, 'T', 'KD')
Run Code Online (Sandbox Code Playgroud)

错误:

消息8152,级别16,状态14,行1
字符串或二进制数据将被截断.该语句已终止.

Cur*_*urt 6

您需要增加数据类型大小.

目前你有varchar(20).

如果数据长度为20个字符,并且您将1个字符替换为2,那么这将是21个字符长,这将导致截断.

varchar(50)例如,尝试增加您的数据类型,这应该可以解决您的问题.