CREATE PROCEDURE dbo.uspGetAllUsers
(
@persontype varchar(100) = null,
@name varchar(100) = null,
@adddatetime datetime = null,
@activeaccount int = null,
@country varchar(20)= null
)
AS
set nocount on
declare @cond varchar(8000)
select @cond = 'select * from users where 1 = 1'
if @persontype is not null
set @cond = @cond + ' and persontype = ''' + @persontype + ''''
if @name is not null
set @cond = @cond + ' and x_firstname like ''%' + @name + '%'' or x_lastname like ''%' + @name + '%'' or x_email like ''%' + @name + '%'''
if @activeaccount is not null
set @cond = @cond + ' and activeaccount = ' + convert(varchar, @activeaccount)
if @adddatetime is not null
set @cond = @cond + ' and adddatetime = ''' + convert(varchar, @adddatetime, 120) + ''''
if @country is not null
set @cond = @cond + ' and x_country = ''' + @country + ''''
print @cond
exec(@cond)
GO
Improve your understanding about Dynamic SQL here http://www.sommarskog.se/dynamic_sql.html
Peter Larsson
Helsingborg, Sweden