首页 新闻 搜索 专区 学院

关于sqlserver存储过程的问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-02-01 18:42

 

如上图 我定义了一个存储过程 接受一个wfNumber,如果我只传单个值  则能删除成功 如果我传多个值 比如 :  ID1,ID2     则上述方法都删除失败 求大神指教  ps:个人感觉 是不是sqlserver会默认把参数都加上单引号  但是即便这样 我的方法中 也应该有一个对啊   不懂不懂

果果天涯的主页 果果天涯 | 初学一级 | 园豆:24
提问于:2013-01-24 18:46
< >
分享
最佳答案
0

declare @sql as nvarchar(max)

set @sql='delete from tbflow where wfnumber in ('+@wfnumber+')'

exec @sql

收获园豆:10
死白的man | 老鸟四级 |园豆:2135 | 2013-01-25 08:18

还是不行啊 我在sqlserver中执行存储过程 传一个 wf14 (一个ID编号)  他显示  wf14列名无效 好像还是单引号的问题 

果果天涯 | 园豆:24 (初学一级) | 2013-01-25 12:25

难道要传  ‘wf14’,'wf15'   这样传?  我先试试

果果天涯 | 园豆:24 (初学一级) | 2013-01-25 12:27
其他回答(2)
0

楼上正解

如果id在表中是int型,Exec 过程名 ‘1,2’

如果id在表中是varchar类型,Exec 过程名 ‘‘’a‘’,‘’b‘’’,两个单引号在拼接SQL是一个单引号

Rich.T | 园豆:3440 (老鸟四级) | 2013-01-25 10:34
0

如果是数值类型的,用一楼的就可以了,否则还得处理单引号的问题。动态sql是解决办法之一。

清海扬波 | 园豆:852 (小虾三级) | 2013-01-25 11:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册