注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

细节决定成败

 
 
 

日志

 
 

存储过程  

2010-10-13 15:40:08|  分类: 数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

CREATE PROCEDURE [拥有者.]存储过程名[;程序编号]

  [(参数#1,…参数#1024)]

  [WITH

  {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}

  ]

  [FOR REPLICATION]

AS 程序行

参数:@参数名 数据类型 [VARYING] [=内定值] [OUTPUT]

[OUTPUT]是用来指定该参数是既有输入又有输出值的

例子:

CREATE PROCEDURE order_tot_amt

  @o_id int,

  @p_tot int output

  AS

  SELECT @p_tot = sum(Unitprice*Quantity)

  FROM orderdetails

  WHERE ordered=@o_id

  GO

exec order_tot_amt

 

如:
  表book的内容如下
  编号 书名 价格
  001 C语言入门 $30
  002 PowerBuilder报表开发 $52
  实例1:查询表Book的内容的存储过程
  create proc query_book
  as
  select * from book
  go
  exec query_book
  实例2:
  加入一笔记录到表book,并查询此表中所有书籍的总金额
  Create proc insert_book
  @param1 char(10),@param2 varchar(20),@param3 money,@param4 money output
  with encryption ---------加密
  as
  insert into book(编号,书名,价格) Values(@param1,@param2,@param3)
  select @param4=sum(价格) from book
  go
  执行例子:
  declare @total_price money
  exec insert_book '003','Delphi 控件开发指南',$100,@total_price
  print '总金额为'+convert(varchar,@total_price)
  go
  存储过程的3种传回值:
  1)、以Return传回整数
  2)、以output格式传回参数
  3)、Recordset
  传回值的区别:
  output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中。
  实例3:
  设有两个表为Product,Order_,其表内容如下:
  Product
  产品编号 产品名称 客户订数
  001 钢笔 30
  002 毛笔 50
  003 铅笔 100
  Order_
  产品编号 客户名 客户订金
  001 南山区 $30
  002 罗湖区 $50
  003 宝安区 $4
  请实现按编号为连接条件,将两个表连接成一个临时表,该表只含编号.产品名.客户名.订金.总金额,
  总金额=订金*订数,临时表放在存储过程中
  代码如下:
  Create proc temp_sale
  as
  select a.产品编号,a.产品名称,b.客户名,b.客户订金,a.客户订数* b.客户订金 as总金额
  into #temptable from Product a inner join Order_ b on a.产品编号=b.产品编号-----此处要用别名
  if @@error=0
  print 'Good'
  else
  print 'Fail'
  go
  评论这张
 
阅读(108)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018