博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建带输入参数的存储过程
阅读量:5052 次
发布时间:2019-06-12

本文共 2237 字,大约阅读时间需要 7 分钟。

创建带输入参数的存储过程

语法

create proc[edure] 存储过程名

  @参数1 数据类型=默认值,

  ……

  @参数n 数据类型=默认值

 

as

  sql语句

go     --必须要加批处理的go

例子:

1 --创建带输入参数的存储过程 2 /* 3     题目:查询指定的用户在指定的时间段内的下单信息, 4     如果结束日期没有指的话,那么查询的是到今天为止的下单信息 5 */ 6 use E_Market 7 go  8 if exists (select * from sysobjects where name='usp_GetOrderInfo') 9 drop proc usp_GetOrderInfo10 go11 create proc usp_GetOrderInfo12     @startDate datetime,   --开始时间13     @endDate datetime=null,   --结束时间14     @userId varchar(20)=null  --指定的用户15 as16     if @endDate is null    --判断结束日期是否为空17         begin18             set @endDate=GETDATE()   --赋值当前日期19         end20 21     if @userId is null  --查询指定时间段内的所有订单信息22         begin23             select O.UserId as 用户号, PayWay as 付款方式, O.Amount as 购买数量,C.CommodityName as 商品名称,24                 S.SortName as 类别名称, O.OrderTime as 下单时间 from OrderInfo as O 25                  inner join CommodityInfo as C on O.CommodityId=C.CommodityId26                  inner join CommoditySort as S on C.SortId=S.SortId27                     where  O.OrderTime between @startDate and @endDate28         end29 30     else  --查询指定用户指定时间段内的所有订单信息31         begin 32             select O.UserId as 用户号, PayWay as 付款方式, O.Amount as 购买数量,C.CommodityName as 商品名称,33             S.SortName as 类别名称, O.OrderTime as 下单时间 from OrderInfo as O 34              inner join CommodityInfo as C on O.CommodityId=C.CommodityId35              inner join CommoditySort as S on C.SortId=S.SortId36              where O.UserId=@userId and O.OrderTime between @startDate and @endDate37         end38 go39 40 --如何使用带参数的存储过程41 --1)结束日期与用户都使用默认值42 --只指定了开始时间,查询的是从开始时间到今天的所有订单信息43 exec usp_GetOrderInfo '2014-11-1'44 45 --2)结束日期不为空,从开始时间到结束时间的所有订单信息46 --隐式调用,参数的顺序必须与创建存储过程的参数顺序完全相同47 exec usp_GetOrderInfo '2014-11-1', '2014-11-12','xiangxiang'48 49 --3)显示调用50 --显示调用对参数顺序无要求,如果参数中一个写"@名称=值"的形式,之后的参数都必须写成"@名称=值"的形式,默认值可以使用default代替51 exec usp_GetOrderInfo @UserId='xiangxiang',@startDate='2014-11-1',@endDate=default52 53 54 --4)可以通过声明变量来调用55 declare @d1 datetime,@d2 datetime, @uid varchar(20)56 set @d1='2014-11-1'57 set @d2='2014-12-1'58 set @uid='xiangxiang'59 exec usp_GetOrderInfo @d1,@d2,@uid60 --除了显示调用外,要求参数位置必须与存储过程定义时顺序相同

 

转载于:https://www.cnblogs.com/zhangxudong-cnblogs/p/10940966.html

你可能感兴趣的文章
小程序底部导航栏
查看>>
ibatis学习笔记
查看>>
18-ES6(1)
查看>>
poj1611 简单并查集
查看>>
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>
C# BS消息推送 SignalR介绍(一)
查看>>
asp.net core 系列 16 Web主机 IWebHostBuilder
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>