CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

求助 有关存储过程的一个问题 !!!!!!

楼主jinguang81(光当)2003-08-02 16:35:37 在 MS-SQL Server / 基础类 提问

小弟今天做练习 如下 结果无论getsss后面跟哪三个数字 都会得到正确结果  
  (结果已验证正确无误) 请大虾们指教 谢谢  
   
  use   northwind   go  
  create   proc   getsss   @pin   int   output,@sum   money   output,@avg   money   output  
  as   select   @pin=count(*)   from   products   select   @sum=sum(unitprice)   from   products  
  select   @avg=avg(unitprice)   from   products  
  print   'over'        
  --select   count(*)   from   products  
  print   'count   is:'+convert(varchar(20),@pin)  
  print   'total   price   is:'+convert(varchar(20),@sum)  
  print   'avg   price   is:'+convert(varchar(20),@avg)  
    getsss   2,55,2  
  结果: over  
      count   is:77  
      total   price   is:2222.71  
      avg   price   is:28.87  
   
  问题点数:0、回复次数:10Top

1 楼CrazyFor(冬眠的鼹鼠)回复于 2003-08-02 16:39:46 得分 0

没错啊,结果就是这样的,  
   
  你有什么问题?什么地方不明白?  
   
  Top

2 楼sdhdy(大江东去...)回复于 2003-08-02 16:41:19 得分 0

@pin   ,@sum,@avg    
  都是返回值  
   
  和你输入的三个值没关系Top

3 楼sdhdy(大江东去...)回复于 2003-08-02 16:42:55 得分 0

@pin   ,@sum,@avg   的3个值又被重新赋值了Top

4 楼iamsea11()回复于 2003-08-02 16:43:49 得分 0

output   参数处能够输入?Top

5 楼CrazyFor(冬眠的鼹鼠)回复于 2003-08-02 16:54:59 得分 0

iamsea11(),是能句输入,可是你并没有利用你的输入值啊,  
   
  你可以这样试试:  
   
  use   northwind   go  
  create   proc   getsss   @pin   int   output,@sum   money   output,@avg   money   output  
  as    
  print   'Start'        
  print   'count   is:'+convert(varchar(20),@pin)  
  print   'total   price   is:'+convert(varchar(20),@sum)  
  print   'avg   price   is:'+convert(varchar(20),@avg)  
  select   @pin=count(*)   from   products   select   @sum=sum(unitprice)   from   products  
  select   @avg=avg(unitprice)   from   products  
  print   'over'        
  --select   count(*)   from   products  
  print   'count   is:'+convert(varchar(20),@pin)  
  print   'total   price   is:'+convert(varchar(20),@sum)  
  print   'avg   price   is:'+convert(varchar(20),@avg)  
  ----  
    getsss   2,55,2  
  这样就可以看到你的输入值了.  
  Top

6 楼nboys()回复于 2003-08-02 16:55:14 得分 0

因为这三个变量都是output类型的  
  @pin   int   output,@sum   money   output,@avg   money   output  
   
  而且这三个变量都是存储过程内部算好的  
  所以不管你输入什么数据,这三个结果都不会表  
   
  除非你往products表中操作数据Top

7 楼nboys()回复于 2003-08-02 16:58:55 得分 0

可以试一试这个  
   
  create   proc   getsss    
  @pin   int   output,@sum   money   output,@avg   money   output  
  as    
  print   'over'        
  --select   count(*)   from   products  
  print   'count   is:'+convert(varchar(20),@pin)  
  print   'total   price   is:'+convert(varchar(20),@sum)  
  print   'avg   price   is:'+convert(varchar(20),@avg)  
   
   
    getsss   2,55,2  
  结果: over  
      count   is:2  
      total   price   is:55  
      avg   price   is:2Top

8 楼nboys()回复于 2003-08-02 17:02:06 得分 0

如果改成这样,结果就不同了  
   
   
  create   proc   getsss    
  @pin   int   output,@sum   money   output,@avg   money   output  
  as    
  print   'over'        
  print   'count   is:'+convert(varchar(20),@pin)  
  print   'total   price   is:'+convert(varchar(20),@sum)  
  print   'avg   price   is:'+convert(varchar(20),@avg)  
   
   
    getsss   2,55,2  
  结果: over  
      count   is:2  
      total   price   is:55  
      avg   price   is:2Top

9 楼iamsea11()回复于 2003-08-02 18:54:22 得分 0

多谢   :   CrazyFor(太阳下山明朝依旧爬上来  
   
  变量为   output   也   可以   作为输入参数Top

10 楼zjcxc(邹建)回复于 2003-08-02 20:54:19 得分 0

pin   ,@sum,@avg    
  都是返回值  
   
  而且这三个值都在你的存储过程中被重新赋值  
  而你的存储过程中又没有地方在赋值之前引用了它.  
   
   
  所有你的结果是正常的.  
  Top

11 楼jinguang81(光当)回复于 2003-08-03 09:23:12 得分 0

谢谢大家   我知晓了   呵呵~Top

相关问题

  • 有关存储过程的!
  • 有关存储过程,再次请教!
  • 有关存储过程,再次请教!!
  • 有关存储过程的问题
  • 紧急问题!有关存储过程!
  • 有关存储过程的问题!
  • 有关存储过程的问题
  • 有关存储过程capbility not supported
  • 有关存储过程的like问题?
  • 有关存储过程的like问题?

关键词

  • getsss
  • pin
  • avg
  • sum
  • 值
  • money
  • 结果
  • output
  • convert
  • varchar

得分解答快速导航

  • 帖主:jinguang81

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo