日期:2014-05-19  浏览次数:20519 次

急!传入整型“列表”参数到存储过程IN语句中的解决办法???
写了个存储过程,其中有条SQL语句为:

SELECT   *   FROM   TB1   WHERE   ID   IN   (我的参数列表)

现在的问题是ID为整形数据,我应该如何传入我的参数列表呢?
比如我想传入

4,49,50

试了好久都不行,麻烦大家帮帮忙哈.
谢谢了.

------解决方案--------------------
declare @mylist varchar(1000)
declare @sql varchar(8000)
set @sql = 'SELECT * FROM TB1 WHERE ID IN ( '
set @mylist = '1,4,19 '
set @sql = @sql + @mylist + ') '
exec(@sql)

------解决方案--------------------
exec( 'SELECT * FROM TB1 WHERE ID IN ( '+@参数+ ') ')


------解决方案--------------------
传入的时候是要以字符串形式进行的,所以要定义一个字符类型的变量进行参数传递:
declare @s nvarchar(100)
set @s = '4,49,50 '
exec( 'SELECT * FROM TB1 WHERE ID IN ( ' + @s + ') ')