我有一个表t_bom,其中有一个字段pn在数据库中有一个字段为10,现在想改为11位,注(pn varchar(20)),如pn为atx12345678901想改为tx123456789011,用什么语句来写,我这样更改不了.UPDATE t_BOM
SET pn = LEFT(pn, 9) + '1' + RIGHT(pn, 1)
有什么办法可以在sqlserver中修改,谢谢!!
SET pn = LEFT(pn, 9) + '1' + RIGHT(pn, 1)
有什么办法可以在sqlserver中修改,谢谢!!
insert into @str select 'atx12345678901'
insert into @str select 'atx1234trtetrh'
insert into @str select 'atxewqefweqqq8'UPDATE @str
SET pn = substring(pn,2,12) + '1' + right(pn,1) select * from @str
--是这样吗?
ALTER TABLE 表名 ALTER COLUMN 列名
SET pn = SUBSTRING(pn, 1, 13) + '1'+ RIGHT(pn, 1)
但提示出错:
服务器: 消息 8152,级别 16,状态 9,行 1
将截断字符串或二进制数据。
语句已终止。
不知哪出错了我的pn定义的为varchar(20)
UPDATE t_BOM1
SET pn = SUBSTRING(pn, 1, 13) + '1'+ RIGHT(pn, 1)
where len(pn)=10
但不知道为么,我的pn字段全部都是10位数的,但不用where语句就更新不了,请大家帮忙解决一下,谢谢!