SqlServer的存储过程如何使用where in?

bugattieb164 2008-01-07 10:10:28
我有个存储过程:
过程中sql语句是:delete from xxx where id in(@id)
其中id为int类型,标识.
@id的数据有可能是单数字或多个数字组成的数组.比如18或5,8,12,45这样.

我在过程中把@id设为varchar(30)类型.结果老是报错.说无法将varchar转为int.我把@id改为int但如果是数字数组又报错.该怎么办?
...全文
390 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fulianglove 2008-01-09
  • 打赏
  • 举报
回复
1楼2楼的方法那种效率高 ?
dawugui 2008-01-07
  • 打赏
  • 举报
回复
数字 in (1,2,3...)
把@id转换为字符串'(1,2,3...)'
-------------------------------
exec('delete from xxx where id in' + @id)
dobear_0922 2008-01-07
  • 打赏
  • 举报
回复
--如果ID是数字
delete from xxx where charindex(','+rtrim(id)+',', ','+@id+',')>0
dobear_0922 2008-01-07
  • 打赏
  • 举报
回复
delete   from   xxx   where charindex(','+id+',', ','+@id+',')>0 
子陌红尘 2008-01-07
  • 打赏
  • 举报
回复
exec('delete from xxx where id in('+@id+')')

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧