日期:2014-05-17  浏览次数:20502 次

存储过程空参数则不查询
写了一个存储过程,带有多个参数,希望的是如果某个参数为空则不参与查询条件,但测试不成功不知道怎么回事
create proc 
@vehicleid nchar(12),
@dn numeric(8,0)
as 
select * from t1 where vehicleid like '%'+ isnull(@vehicleid,vehicleid) +'%' and dn = isnull(@dn,dn)

没有提示错误,只是查询的结果不正确。

------解决方案--------------------
你这样写,当传入参数为空时,where条件就类似where 1=1 是恒成立的,结果当然不对