请教一个存储过程参数处理问题
有一个存储过程,代码如下
CREATE procedure [dbo].[BBB] @spid varchar(8000)asselect * from BI_SPZL where spid in(@spid)
CREATE PROCEDURE [dbo].[BBB] @spid VARCHAR(8000)AS DECLARE @sql VARCHAR(8000) SET @sql = 'select * from BI_SPZL where spid in(' + @spid + ')' EXEC ( @sql )
[解决办法]
你这样传递参数,相当于让字符串SP000000193与字符串'SP000000193'或字符串'SP000000202'去比,
两者当然不相等
改成下面这样
CREATE procedure [dbo].[BBB] @spid varchar(8000)asexec('select * from BI_SPZL where spid in('+@spid+')')