免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4413 | 回复: 8
打印 上一主题 下一主题

存储过程传递参数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-04-02 10:52 |只看该作者 |正序浏览
create procedure lsdteststr
@dzhm varchar(8000)
as
begin
  select ggdm ,sum(sl) as sl,dzhm from lsdnrsl where dzhm in (@dzhm) group by ggdm,dzhm
end

我想达到这样的效果(这个有数据出来)
select ggdm, sum(sl) as sl ,dzhm  from lsdnrsl where dzhm in (\'SH03039353\',\'SH03039354\') group by ggdm,dzhm

我在传递参数的时候传进去的为
  exec lsdteststr  \'\'\'SH03039353\'\',\'\'SH03039354\'\'\'
   --这个没有数据(为什么)

却没有数据产生?为什么,我应该怎么传参数进去?
才能满足这样的效果

论坛徽章:
0
9 [报告]
发表于 2004-04-02 15:37 |只看该作者
因为的确不是sql的正确语法

论坛徽章:
0
8 [报告]
发表于 2004-04-02 15:21 |只看该作者
最初由 xzh2000 发布
[B]

是的。 [/B]


知道为什么吗??

论坛徽章:
0
7 [报告]
发表于 2004-04-02 13:48 |只看该作者
在执行计划当中显示:SEEK=[@DZHM]
而不是SEEK=\'SH03039353\' OR \'SH03039354\'
如果使用动态SQL的话就是第二种结果

论坛徽章:
0
6 [报告]
发表于 2004-04-02 13:29 |只看该作者
最初由 sdssoft 发布
[B]
可是我不想用动态的sql
你的意思就是这样就不能够得到多个结果是吗? [/B]


是的。

论坛徽章:
0
5 [报告]
发表于 2004-04-02 12:25 |只看该作者
最初由 xzh2000 发布
[B]exec lsdteststr \'\'\'SH03039353\'\',\'\'SH03039354\'\'\'
--这个没有数据(为什么)

这样执行也有问题,你只定义了一个形参,却有两个实参,
将它们合并成一个字符串就差不多啦 [/B]



仔细看看,是一个实参,“,”是期中的一部分的字符串

论坛徽章:
0
4 [报告]
发表于 2004-04-02 12:05 |只看该作者
最初由 xzh2000 发布
[B]当然不可以,
你在过程内必须使用动态SQL

create procedure lsdteststr
@dzhm varchar(8000)
as
begin
declare @s varchar(999)
select @sql=\'select ggdm ,sum(sl) as sl,dzhm from lsdnrsl where dzhm in (\'+@dzhm+\') group by ggdm,dzhm\'
exec(@s)
end [/B]

可是我不想用动态的sql
你的意思就是这样就不能够得到多个结果是吗?

论坛徽章:
0
3 [报告]
发表于 2004-04-02 11:56 |只看该作者
exec lsdteststr \'\'\'SH03039353\'\',\'\'SH03039354\'\'\'
--这个没有数据(为什么)

这样执行也有问题,你只定义了一个形参,却有两个实参,
将它们合并成一个字符串就差不多啦

论坛徽章:
0
2 [报告]
发表于 2004-04-02 11:53 |只看该作者
当然不可以,
你在过程内必须使用动态SQL

create procedure lsdteststr
@dzhm varchar(8000)
as
begin
declare @s varchar(999)
select @sql=\'select ggdm ,sum(sl) as sl,dzhm from lsdnrsl where dzhm in (\'+@dzhm+\') group by ggdm,dzhm\'
exec(@s)
end
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP