update mytable
set no=left(no,len(no)-3)+cast('100'+cast(right(no,3) as int)+1 as nvarchar(3))
where ...

解决方案 »

  1.   

    declare @s nvarchar(100)
    set @s='101-01-003'
    select left(@s,len(@s)-3)+cast('100'+cast(right(@s,3) as int)+1 as nvarchar(3))
      

  2.   

    update mytable
    set no= left(no,len(no)-3)+right(cast('1'+right(no,3) as int)+1,3)
    where ....
      

  3.   

    update mytable
    set no = right(rtrim('000' + convert(char(3), convert(int, right(no, 3)) + 1) ), 3)
    where .....
      

  4.   

    update 表 set NO=stuff(NO,len(NO)-2,3,right(1001+right(NO,3),3))
      

  5.   

    update 表 set NO=stuff(NO,len(NO)-2,3,right(1001+right(NO,3),3))
      

  6.   

    update 表 set NO=stuff(NO,len(NO)-2,3,right(1001+right(NO,3),3))
      

  7.   

    update 表 set NO=stuff(NO,len(NO)-2,3,right(1001+right(NO,3),3))
    where isnumeric(right(NO,3))=1 --如果不能保证最好三位是数字,最好加个条件
      

  8.   

    update 表 set NO=stuff(NO,len(NO)-2,3,right(1001+right(NO,3),3))
    where isnumeric(right(NO,3))=1 --如果不能保证最好三位是数字,最好加个条件
      

  9.   

    錯了一點
    update mytable
    set no = left(no,len(no)-3) + right(rtrim('000' + convert(char(3), convert(int, right(no, 3)) + 1) ), 3)
    where .....