需求是这样的。
有一张数据表,根据ID(主键。)对其进行更新。
可能有时候传入的不只一个ID.可能多个。
然后对其UPDATE SET AKCount = AKCount +1 WHERE ID --(假如ID有:1,2,3,1,1,2)
这时需要对ID为1的进行三次更新,ID为2的进行2次更新,ID为3的进行1次更新。该怎么做。

解决方案 »

  1.   

    统计ID的相同个数 AKCount = AKCount +ID的相同个数
      

  2.   


    declare @str varchar(8000),@start int,@end int
    set @str = '1,2,3,1,1,2,'  --如果输入串不是以分割字符结尾,则 set @str = @str+‘,’
    set @start = 1
    set @end = charindex(',',@str,@start) 
    declare @sqlStart varchar(8000)
    set @sqlStart='UPDATE TB SET AKCount = AKCount + 1 WHERE ID ='''
    declare @sqlEnd varchar(2)
    set @sqlEnd = ''''
    declare @fullSql varchar(2000)
    while(@end<>0)
        begin        
    set @fullSql = @sqlStart+substring(@str,@start,@end-@start)+@sqlEnd 
    print @fullSql
    exec (@fullSql)
            set @start = @end+1
            set @end = charindex(',',@str,@start)
        end