如上图 我定义了一个存储过程 接受一个wfNumber,如果我只传单个值 则能删除成功 如果我传多个值 比如 : ID1,ID2 则上述方法都删除失败 求大神指教 ps:个人感觉 是不是sqlserver会默认把参数都加上单引号 但是即便这样 我的方法中 也应该有一个对啊 不懂不懂
declare @sql as nvarchar(max)
set @sql='delete from tbflow where wfnumber in ('+@wfnumber+')'
exec @sql
还是不行啊 我在sqlserver中执行存储过程 传一个 wf14 (一个ID编号) 他显示 wf14列名无效 好像还是单引号的问题
难道要传 ‘wf14’,'wf15' 这样传? 我先试试
楼上正解
如果id在表中是int型,Exec 过程名 ‘1,2’
如果id在表中是varchar类型,Exec 过程名 ‘‘’a‘’,‘’b‘’’,两个单引号在拼接SQL是一个单引号
如果是数值类型的,用一楼的就可以了,否则还得处理单引号的问题。动态sql是解决办法之一。