DECLARE  @l_lifeclassid nvarchar(250)
         
update t_life_class set t_life_class.l_counts=t_life_class.l_counts+1 from t_life_class,inserted where t_life_class.id in (@l_lifeclassid)这里@l_lifeclassid的值为网页中的复选框中获得的结果,假设为:1243,1244,1245这样一个字符串,现在要用in语句将t_life_class中ID等于他们的记录数+1,但报"将数据类型 nvarchar 转换为 bigint 时出错。"请问应该如何写这个语句。
不然表达清楚没有,各位请帮忙。

解决方案 »

  1.   

    你可以加上convert转换DECLARE  @l_lifeclassid nvarchar(250)
             
    update t_life_class set t_life_class.l_counts=convert(int,t_life_class.l_counts)+1 from t_life_class,inserted where t_life_class.id in (@l_lifeclassid)
      

  2.   

    exec('update t_life_class set t_life_class.l_counts=t_life_class.l_counts+1 from t_life_class,inserted where t_life_class.id in ('+@l_lifeclassid+')')
      

  3.   

    update t_life_class 
    set 
        t_life_class.l_counts=t_life_class.l_counts+1 
    from 
        t_life_class,inserted 
    where 
        charindex(','+cast(t_life_class.id as nvarchar(20))+',',','+@l_lifeclassid+',')>0
      

  4.   

    update t_life_class set t_life_class.l_counts=t_life_class.l_counts+1 from t_life_class,inserted where ','+@l_lifeclassid+',' Like '%,'+t_life_class.id+',%'
      

  5.   

    谢谢各位,答案产生了。
    wangdehao(找找找(现在很幸福)) 的是我需要的答案,感谢!