首页 新闻 赞助 找找看

请教各位大神,这个存储过程为什么返回两个结果集?非常感谢

0
[已解决问题] 解决于 2014-01-06 10:10


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

天藐水瓶的主页 天藐水瓶 | 初学一级 | 园豆:184
提问于:2014-01-05 15:34
< >
分享
最佳答案
0

你定义两个变量后都给它赋值了

select @ParameterDefinition='@nameParameter varchar(100),@idnumParameter varchar(20)';

select @sql=N'select * from charges where 1=1'

再做为NULL 的判断 所以你说会不会执行呢

奖励园豆:5
Zery | 大侠五级 |园豆:6151 | 2014-01-05 17:27

多写了个+号

天藐水瓶 | 园豆:184 (初学一级) | 2014-01-06 10:10
其他回答(1)
0

两个if条件都成立了呗,还能怎样……

Ninja_Lu | 园豆:289 (菜鸟二级) | 2014-01-05 15:38

这位大侠,返回两个结果集,一个是表中的全部数据,另一个是满足where条件的数据

支持(0) 反对(0) 天藐水瓶 | 园豆:184 (初学一级) | 2014-01-05 15:48

@天藐水瓶: 嗯……select @sql看一下,动态拼串问题多多啊。

支持(0) 反对(0) Ninja_Lu | 园豆:289 (菜鸟二级) | 2014-01-05 15:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册