--用动态SQL,类似:create proc sp_test (@p1 varchar(10),@p2 varchar(10),@p3 varchar(20))
asdeclare @sql varchar(100)set @sql = 'select * from 表名 where 1=1 'if @p1 is not null
set @sql = @sql + ' and f1 = ' + @p1if @p2 is not null
set @sql = @sql + ' and f2 = ' + @p2if @p3 is not null
set @sql = @sql + ' and f3 = ' + @p3
--....
exec (@sql)