创建带输入参数的存储过程
2016-02-19 00:03
218 查看
创建带输入参数的存储过程
带输入参数的存储过程的
语法
CREATE PROC[EDURE] 存储过程名
@参数1 数据类型=默认值,
……
@参数n 数据类型=默认值
AS
SQL语句
GO --必须要加批处理的GO
--创建带输入参数的存储过程
/*
目标:查询指定的用户在指定的事件段内的下单信息,
如果结束日期没有指的话,那么查询的是当今天为止的下单信息
*/
USE E_Market
GO
IF EXIST(SELECT * FROM sysobjects WHERE name='usp_GetOrderInfo')
DROP PROC usp_GetOrderInfo
GO
CREATE PROC usp_GetOrderInfo
@startDate datetime, --开始时间
@endDate datetime=null, --结束时间
@userId varchar(20)=null --指定的用户
AS
IF @endDate IS NULL --判断结束日期日否为空
BEGIN
SET @endDate=GETDATE() --赋当前日期
END
IF @userId IS NULL --查询指定时间端内的所有订单信息
BEGIN
SELECT C.CommodityName AS 商品名称,S.SortName AS 类别名称,O.UserId AS 用户名,O.OrderTime AS 下单时间 FROM OrderInfo AS O
INNER JOIN CommodityInfo AS C ON O.CommodityId=C.CommodityId
INNER JOIN CommoditySort AS C ON O.SortId=C.SortId
WHERE O.OrderTime BETWEEN @startDate AND @endDate
END
ELSE --查询指定用户指定时间段内的所有订单信息
BEGIN
SELECT C.CommodityName AS 商品名称,S.SortName AS 类别名称,O.UserId AS 用户名,O.OrderTime AS 下单时间 FROM OrderInfo AS O
INNER JOIN CommodityInfo AS C ON O.CommodityId=C.CommodityId
INNER JOIN CommoditySort AS C ON O.SortId=C.SortId
WHERE (O.OrderTime BETWEEN @startDate AND @endDate)
AND O.UserId=@userId
END
GO --存储过程结束
--如何使用带参数的存储过程
--1)结束日期与用户都是使用默认值
--只指定了开始时间,查询的是从开始时间到今天的所有订单信息
EXEC usp_GetOrderInfo '2016-02-01'
--2)结束日期不为空,从开始时间到结束时间的所有订单信息
--隐式调用,参数的顺序必须于创建存储过程的参数顺序完全相同
EXEC usp_GetOrderInfo '2015-02-01','2016-02-01','xingcheng'
--3)显示调用
--显示调用对参数顺序无要求,如查参数中一个写"@名称=值"的形式
--之后的参数都必须写成"@名称=值"的形式,默认值可以使用default代替也可以不写
EXEC usp_GetOrderInfo @startDate='2015-02-01',@endDate='2016-02-01',@userId='xingcheng'
--显示调用是的@UserId,@startDate,@endDate是存储过程定义的参数
--4)可以通过声明变量来调用
DECLARE @d1 datetime,@d2 datetime,@uid varchar(20)
SET @d1='2015-02-01'
SET @d2='2016-02-1'
SET @uid='xingcheng'
EXEC usp_GetOrderInfo @d1,@d2,@d3
--除了显示调用之外,要求参数位置必须于存储过程定义时顺序必须相同
带输入参数的存储过程的
语法
CREATE PROC[EDURE] 存储过程名
@参数1 数据类型=默认值,
……
@参数n 数据类型=默认值
AS
SQL语句
GO --必须要加批处理的GO
--创建带输入参数的存储过程
/*
目标:查询指定的用户在指定的事件段内的下单信息,
如果结束日期没有指的话,那么查询的是当今天为止的下单信息
*/
USE E_Market
GO
IF EXIST(SELECT * FROM sysobjects WHERE name='usp_GetOrderInfo')
DROP PROC usp_GetOrderInfo
GO
CREATE PROC usp_GetOrderInfo
@startDate datetime, --开始时间
@endDate datetime=null, --结束时间
@userId varchar(20)=null --指定的用户
AS
IF @endDate IS NULL --判断结束日期日否为空
BEGIN
SET @endDate=GETDATE() --赋当前日期
END
IF @userId IS NULL --查询指定时间端内的所有订单信息
BEGIN
SELECT C.CommodityName AS 商品名称,S.SortName AS 类别名称,O.UserId AS 用户名,O.OrderTime AS 下单时间 FROM OrderInfo AS O
INNER JOIN CommodityInfo AS C ON O.CommodityId=C.CommodityId
INNER JOIN CommoditySort AS C ON O.SortId=C.SortId
WHERE O.OrderTime BETWEEN @startDate AND @endDate
END
ELSE --查询指定用户指定时间段内的所有订单信息
BEGIN
SELECT C.CommodityName AS 商品名称,S.SortName AS 类别名称,O.UserId AS 用户名,O.OrderTime AS 下单时间 FROM OrderInfo AS O
INNER JOIN CommodityInfo AS C ON O.CommodityId=C.CommodityId
INNER JOIN CommoditySort AS C ON O.SortId=C.SortId
WHERE (O.OrderTime BETWEEN @startDate AND @endDate)
AND O.UserId=@userId
END
GO --存储过程结束
--如何使用带参数的存储过程
--1)结束日期与用户都是使用默认值
--只指定了开始时间,查询的是从开始时间到今天的所有订单信息
EXEC usp_GetOrderInfo '2016-02-01'
--2)结束日期不为空,从开始时间到结束时间的所有订单信息
--隐式调用,参数的顺序必须于创建存储过程的参数顺序完全相同
EXEC usp_GetOrderInfo '2015-02-01','2016-02-01','xingcheng'
--3)显示调用
--显示调用对参数顺序无要求,如查参数中一个写"@名称=值"的形式
--之后的参数都必须写成"@名称=值"的形式,默认值可以使用default代替也可以不写
EXEC usp_GetOrderInfo @startDate='2015-02-01',@endDate='2016-02-01',@userId='xingcheng'
--显示调用是的@UserId,@startDate,@endDate是存储过程定义的参数
--4)可以通过声明变量来调用
DECLARE @d1 datetime,@d2 datetime,@uid varchar(20)
SET @d1='2015-02-01'
SET @d2='2016-02-1'
SET @uid='xingcheng'
EXEC usp_GetOrderInfo @d1,@d2,@d3
--除了显示调用之外,要求参数位置必须于存储过程定义时顺序必须相同
相关文章推荐
- [css] line-height 百分比单位和数值单位的区别
- android 成长日记 1.学习使用menu
- JSP通用分页框架
- Python使用爬虫猜密码
- Python实现以时间换空间的缓存替换算法
- Python中使用OpenCV库来进行简单的气象学遥感影像计算
- 使用C#配合ArcGIS Engine进行地理信息系统开发
- Go语言基于Socket编写服务器端与客户端通信的实例
- 对比分析php中Cookie与Session的异同
- PHP利用imagick生成组合缩略图
- PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
- php采集神器cURL使用方法详解
- 多种js图片预加载实现方式分享
- 谈一谈javascript中继承的多种方式
- jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
- javascript轻量级库createjs使用Easel实现拖拽效果
- 复杂的javascript窗口分帧解析
- 初识angular框架后的所思所想
- 《Unity_API解析》 第二章(上) Camera类实例属性
- 学习javascript文件加载优化