Table called Emp contain id,name,lname,birthdate,address and salery
.I want to select from emp.
Basic query : select * from emp
If pass the value for lname ,query : select * from emp where lname = 'fgfg'
like this.
So I created following sp.
create Procedure Proc_selectEmp
(
@name varchar(10) = null,
@lname varchar(10) = null,
@id varchar(10) = null
)
as
begin
select * from Emp
where
(@name is null or name = @name)
and (@lname is null or lname = @lname)
and (@id is null or id = @id)
end
Like emp,there are 13 table having same column name. So my tablenmae is also dynamic.That's why, I choose execute sp_executesql.Can I create like this
create Procedure Proc_selectEmp
(
@name varchar(10) = null,
@lname varchar(10) = null,
@id varchar(10) = null
@tableName varchar(30)
)
as
begin
declare @query nvarchar(1000)
set @query = @query +'select * from '+@tableName+'
where ('+@name+' is null or name = '+@name+')
and ('+@lname+' is null or lname = '+@lname+')
and ('+@id+' is null or id = '+@id+')
end'
execute sp_executesql @query