特急!难:SQL Server 2000,存储过程中使用 IN 关键字,但范围的使用出错!!
大虾救我!
我在存储过程中使用
SELECT * FROM Table_name
WHERE ID IN (1,3,8)
这是我的意图,其中字段 ID 是 INT 类型
但是,这个 IN 中的条件是动态改变的。
所以,我必须用一个参数将这个条件从存储过程外部传入。
可是,传入的是一个字符串变量,格式为 "1,3,8,5"
也就是说,格式就是一个数字加上一个逗号,反复如此。
但是直接将此变量放在 IN 的条件中,如下所示:
Create Proc Proc_name
@Str VARCHAR(500) = ''
AS
SELECT * FROM Table_name
WHERE ID IN (@Str_Condition)
GO
会提示出错:不能将Str转化为INT.
我必须使用存储过程,虽然我知道在ASP中用rs.open方法可以轻易实现要求,但老板不让,痛苦。
在下不知如何是好。
急盼解救为是。谢!!