我现在已有表A
表中字段如:
A1 VARCHAR(50),
A2 VARCHAR(50)然我现在需要把A2都改成VARCHAR(20),于是我执行SQL语句:
alter table A alter column A2 varchar(20)出错:
如下:
消息 8152,级别 16,状态 14,第 1 行
将截断字符串或二进制数据。
语句已终止。发现是已有数据字符太长
于是我执行.
update A
set A2=left(A2,20)
强行把现有数据缩为20位.再次执行SQL:
alter table A alter column A2 varchar(20)错误依旧.SOS哪位高人帮帮忙我?
表中字段如:
A1 VARCHAR(50),
A2 VARCHAR(50)然我现在需要把A2都改成VARCHAR(20),于是我执行SQL语句:
alter table A alter column A2 varchar(20)出错:
如下:
消息 8152,级别 16,状态 14,第 1 行
将截断字符串或二进制数据。
语句已终止。发现是已有数据字符太长
于是我执行.
update A
set A2=left(A2,20)
强行把现有数据缩为20位.再次执行SQL:
alter table A alter column A2 varchar(20)错误依旧.SOS哪位高人帮帮忙我?
alter table tb alter column A2 nvarchar(20)
set A2=convert(varchar(20),A2)
go
关键在于
update A
set A2=left(A2,20)
我从左取得20位.付给它.
其实A2的长度并没有减少.
VARCHAR的特性是自动增长.但不会缩短.
于是我改成了.
update A
set A2=convert(varchar(20),A2)强行转换成20位.
再修改字段长度就成功了.谢谢回贴!