现在我的这个2011(0001)号中的0001这些都存在数据库中,那么数据库中有两个字段一个是存储这些号的,另外是来判断是否用过的,那么我想2012(0001)号如何更具年份自动将数据库中的另一个字段全部标记成未用--插入需要的数据,在不足的位数前面加0
declare @n varchar(10)
set @n = '000'
while @n < 9999
begin
set @n = @n+1
while len(@n)<4 /*需要的位数*/
begin
select @n='0'+@n
end
insert into temp(Number,Notic) values(@n,'0')
--print @n
end SQL中是这样插入的,也就是说0是未用过的,1是已用的
希望高手给予帮助,并给出代码 谢谢了

解决方案 »

  1.   

    楼主的问题没太搞清。
    给楼主传授一个小技巧,在SQL中如果要给字符前面补固定长度的字符,不用那么麻烦,下面这样就可以。declare @n int
    set @n=1
    select right('0000'+cast(@n+1 as varchar), 4)
      

  2.   

    select cast(left('20110001',4)+1 as varchar)+cast(right('20110001',4) as varchar)
      

  3.   

    update temp set c1=cast(left('c1',4)+1 as varchar)+cast(right('c1',4) as varchar) ,notic=1
      

  4.   

    update temp set c1=cast(left('c1',4)+1 as varchar)+cast(right('c1',4) as varchar) ,notic=0
      

  5.   

    update temp set Notic=0 where left([Number],4)=str(year(getdate())-1)把去年的数据notice标记为0,是这个意思麽