ALTER procedure [dbo].[Sp_QueryFeeInfo]
@feedict varchar(100),
@idnum varchar(20)
as
begin
SET NOCOUNT ON;
declare @sql nvarchar(4000)
declare @ParameterDefinition nvarchar(4000);
select @ParameterDefinition='@nameParameter varchar(100),@idnumParameter varchar(20)';
select @sql=N'select * from charges where 1=1'
if @feedict is not null
select @sql+=@sql+N' and feedict=@nameParameter';
if @idnum is not null
select @sql+=@sql+N' and idnum=@idnumParameter';
exec sp_executeSQL @sql,@ParameterDefinition,@nameParameter=@feedict,@idnumParameter=@idnum;
end
你定义两个变量后都给它赋值了
select @ParameterDefinition='@nameParameter varchar(100),@idnumParameter varchar(20)';
select @sql=N'select * from charges where 1=1'
再做为NULL 的判断 所以你说会不会执行呢
多写了个+号
两个if条件都成立了呗,还能怎样……
这位大侠,返回两个结果集,一个是表中的全部数据,另一个是满足where条件的数据
@天藐水瓶: 嗯……select @sql看一下,动态拼串问题多多啊。