首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

存储过程传参数解决思路

2012-03-03 
存储过程传参数whereBankIDin(@strBank),传进去的变量值是“1,2,3”,执行时转int失败,要怎么弄啊[解决办法]

存储过程传参数
where   BankID   in   (@strBank)   ,   传进去的变量值是“1,2,3”,执行时转int失败,要怎么弄啊

[解决办法]
方法一:
--半角逗号
where charindex( ', '+cast(BankID as varchar)+ ', ', ', '+@strBank+ ', ') > 0
--全角逗号
where charindex( ', '+cast(BankID as varchar)+ ', ', ', '+@strBank+ ', ') > 0

方法二:
exec ( '... where BankID in ( '+@strBank+ ') ')
[解决办法]
where charindex(cast(BankID as varchar),@strBank)> 0
[解决办法]
declare @sql varchar(1024)
set @sql= 'select * from tablename where BankID in ( ' + @strBank + ') '
exec(@sql)

要用动态语句

热点排行