存储过程空参数则不查询
写了一个存储过程,带有多个参数,希望的是如果某个参数为空则不参与查询条件,但测试不成功不知道怎么回事
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 是恒成立的,结果当然不对