CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

放分,存储过程中的参数有何限制

楼主visualcdotnet(missing connection or connectionstring)2006-11-04 16:14:33 在 MS-SQL Server / 基础类 提问

我想既当输入参数使用,也想当输出参数使用,可以这样用吗?另外是不是输出参数一定要在最后面,有没有限制的,谢谢 问题点数:100、回复次数:11Top

1 楼aw511(点点星灯)回复于 2006-11-04 16:20:38 得分 10

create     procedure     yourP      
  @inp     int     ,@outp     int     output      
  as      
  set     @outp=@inp+100      
  return     @inp      
     
     
  -------      
  declare     @tt     int,@oo     int      
  exec     @tt=yourP     1,@oo         output      
     
  print     @tt          
  print     @oo      
   
  --楼主说的情况都没有限制,  
  我想既当输入参数使用,也想当输出参数使用,可以这样用吗?  
  可以,注意输入的值和输出的值也许不同(通过了计算)Top

2 楼hellowork(一两清风)回复于 2006-11-04 16:23:05 得分 10

if   object_id('spTest')   is   not   null  
          drop   proc   spTest  
  GO  
  ----创建测试存储过程  
  create   proc   spTest   @inout   varchar(10)   output      
  as  
  select   @inout  
  set   @inout   =   'Hello'  
  GO  
   
  ----执行存储过程  
  declare   @str   varchar(10)  
  set   @str   =   'OK!'  
  EXEC   spTest   @str   output  
  select   @str  
   
  ----清除测试环境  
  drop   proc   spTest  
   
   
  /*结果1  
  OK!  
  */  
  /*结果2  
  Hello  
  */Top

3 楼visualcdotnet(missing connection or connectionstring)回复于 2006-11-04 16:24:13 得分 0

无法在   sysdepends   中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象   'yourP'。仍将创建该存储过程。Top

4 楼marco08(天道酬勤)回复于 2006-11-04 16:25:50 得分 10

create   proc   powerTest   @param   int   output  
  as  
  select   @param=power(@param,   2)  
  return  
  go  
   
  --执行  
  declare   @i   int  
  set   @i=5  
  exec   powerTest   @param=@i   output  
  select   @i  
  Top

5 楼callzjy((草魚))回复于 2006-11-04 16:26:28 得分 10

create     procedure     yourP      
  @inp     int     ,@outp     int     output      
  as      
  set     @outp=@inp+100+@outp      
  return     @inp      
     
  go    
  -------      
  declare     @tt     int,@oo     int      
  set   @oo=9  
  exec     @tt=yourP     1,@oo         output      
     
  print     @tt          
  print     @ooTop

6 楼aw511(点点星灯)回复于 2006-11-04 16:26:35 得分 10

create     procedure     yourP      
  @inp     int     ,@outp     int     output      
  as      
  set     @outp=@inp+100      
  --return     @inp      
  go  
     
  -------      
  declare     @tt     int,@oo     int      
  exec     @tt=yourP     1,@oo         output      
     
  print     @tt          
  print     @oo      
   
  drop   procedure     yourP    
  go  
   
  Top

7 楼aw511(点点星灯)回复于 2006-11-04 16:26:55 得分 10

create     procedure     yourP1      
  @inoutp     int     output      
  as      
  set     @inoutp=@inoutp+100      
  return     @inoutp      
  go  
     
  -------      
  declare     @tt     int    
  set   @tt=5  
  print   @tt  
  exec     @tt=yourP1     @tt     output      
     
  print     @tt          
     
   
  drop   procedure     yourP1  
  go  
   
  --对比着两个Top

8 楼callzjy((草魚))回复于 2006-11-04 16:29:05 得分 10

create     procedure     yourP      
  @outp     int     output     ,@inp     int      
  as      
  set     @outp=@inp+100+@outp      
  return     @inp      
     
  go    
  -------      
  declare     @tt     int,@oo     int      
  set   @oo=9  
  exec     @tt=yourP     @oo         output,1  
     
  print     @tt          
  print     @ooTop

9 楼marco08(天道酬勤)回复于 2006-11-04 16:29:24 得分 10

注意执行存储过程时  
  1、写出参数名称后可以不按参数定义时的顺序  
  2、按照位置传递,而不是命名参数名称Top

10 楼bimyboy(★浩天雪狐★)回复于 2006-11-04 16:52:31 得分 10

MARKTop

11 楼yjlhch(爱拼才会赢)回复于 2006-11-04 18:45:30 得分 10

学习Top

相关问题

关键词

得分解答快速导航

  • 帖主:visualcdotnet
  • aw511
  • hellowork
  • marco08
  • callzjy
  • aw511
  • aw511
  • callzjy
  • marco08
  • bimyboy
  • yjlhch

相关链接

  • SQL Server类图书

广告也精彩

反馈

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