问题可能出在了这个地方了:
where id in (@tid)因为没有找到记录所以没有更新,因为IN这个语法要求是这样的(A,B,C)
但是你这里传进来的是一个字符串@TID,所以成了这样的了(A),是一个变量值了,而不是一个逗号表达式了,你可以改成And或者OR条件而不使用IN来修改这个问题
where id in (@tid)因为没有找到记录所以没有更新,因为IN这个语法要求是这样的(A,B,C)
但是你这里传进来的是一个字符串@TID,所以成了这样的了(A),是一个变量值了,而不是一个逗号表达式了,你可以改成And或者OR条件而不使用IN来修改这个问题
用我上面的代码试过,如果一个如:447 就可以,但两个以上就不行,如:'447''448'或447,448;
IN(447,448)而传一个字符串后却是这样的了:
IN("447,448")这相当于是一个值,而不是两个值,所以就不对了.
exec(@sqlstr)
GO理论上这样可以
hbxtlhx(平民百姓) ( ) 信誉:110 Blog 加为好友 2007-04-28 14:34:20 得分: 0
你可以使用字符串来拼一个Sql来达到这个目的的.因为你传进去的是一个字符串,一个字符串只是一个变量,而在IN()里面要求的是一个逗号表达式,比如本来应是这样的
IN(447,448)而传一个字符串后却是这样的了:
IN("447,448")这相当于是一个值,而不是两个值,所以就不对了.
-----------------------------------------------
hbxtlhx 已经说过了 呵呵 就是这道理