Emp というテーブルが含まれていid,name,lname,birthdate,address and salery
ます。emp から選択したいです。基本クエリ : select * from emp
lname ,query の値を渡す場合:select * from emp where lname = 'fgfg'
このように。そこで、次の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
emp のように、同じ列名を持つテーブルが 13 個あります。私のtablenmaeも動的です。そのため、execute sp_executesqlを選択します。このように作成できますか
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