存储过程中动态查询问题,该怎样才效率最高?
半截烟头 2007-06-08 05:10:59 比如有一个表T1,有三个字段:
[ID] bigint,
[F1] varchar(255),
[F2] varchar(255)
创建一个存储过程动态查询,传递三个参数:
create proc P_Select( @ID bigint,@F1 varchar(255),@F2 varchar(255))
as
begin
select *
from T1
where case when not @ID is null then
[id] =@ID
else
0=0
end
and when not @F1 is null then
F1 like '%' + @F1 +'%'
else
0=0
end
and when not @F2 is null then
F2 like '%' + @F2 +'%'
else
0=0
end
end
这样不行,有没有什么比较好的方法?
除了在存储过程里先生成SQL语句然后再用exec执行这种方法之外.