CREATE procedure dbo.select_a @b varchar(50), @c varchar(50), @d varchar(50), @e varchar(50) as declare @strsql varchar(5000) ; set @strsql='select * from a where 1=1 '; if @b <>'' set @strsql= @strsql+' and b="'+@b +'"'; if @c <>'' set @strsql= @strsql+' and c="'+@c +'"'; if @d <>'' set @strsql= @strsql+' and d="'+@d +'"'; if @e <>'' set @strsql= @strsql+' and e="'+@e +'"'; exec (@strsql) GO