--存储过程学习篇

 --.简单存储过程不带参数的学习
IF OBJECT_ID('Orders_GetAllOrders','P') IS NOT NULL
DROP PROCEDURE Orders_GetAllOrders;
GO
CREATE PROC Orders_GetAllOrders
AS
SET NOCOUNT ON;
SELECT * FROM dbo.Orders
GO --.简单存储过程,带参数
IF OBJECT_ID('Orders_GetAllByName','P') IS NOT NULL
DROP PROCEDURE Orders_GetAllByName;
GO
CREATE PROCEDURE Orders_GetAllByName
@ShipName NVARCHAR()
AS
SELECT * FROM dbo.Orders
WHERE ShipName=@ShipName
GO --执行带参数的存储过程
EXEC Orders_GetAllByName @ShipName=N'Hanari Carnes' --.使用带有通配符参数的简单存储过程 IF OBJECT_ID('Employees_GetAllByName','P') IS NOT NULL
DROP PROCEDURE Employees_GetAllByName;
GO
CREATE PROCEDURE Employees_GetAllByName
@FirstName NVARCHAR()=N'%',
@LastName NVARCHAR()=N'D%'
AS
SELECT * FROM dbo.Employees
WHERE FirstName LIKE @FirstName AND LastName LIKE @LastName; --执行存储过程
EXECUTE dbo.Employees_GetAllByName @FirstName = N'Nancy', -- nvarchar()
@LastName = N'Davolio' -- nvarchar() --.返回多个结果集
IF OBJECT_ID('GetManyResultsCount','P') IS NOT NULL
DROP PROCEDURE GetManyResultsCount;
GO
CREATE PROCEDURE GetManyResultsCount
AS
SELECT COUNT(*) FROM dbo.Orders;
SELECT COUNT(*) FROM dbo.Employees;
GO --执行存储过程
EXEC GetManyResultsCount; --使用 OUTPUT 参数的存储过程
IF OBJECT_ID('GetmanyProducts','P') IS NOT NULL
DROP PROCEDURE GetmanyProducts;
GO
CREATE PROCEDURE GetmanyProducts
@ProductName NVARCHAR(),
@MaxPrice MONEY,
@ComparePrice MONEY OUTPUT,
@UnitPrice MONEY OUTPUT
AS
SELECT p.ProductName,p.UnitPrice FROM dbo.Products AS P
INNER JOIN dbo.Categories AS C ON C.CategoryID = P.CategoryID
WHERE p.ProductName LIKE @ProductName AND p.UnitPrice<@MaxPrice --设置输出参数
SET @UnitPrice=(
SELECT MAX(P.UnitPrice) FROM dbo.Products AS P
JOIN dbo.Categories AS C ON C.CategoryID = P.CategoryID
WHERE p.ProductName LIKE @ProductName AND p.UnitPrice<@MaxPrice
)
SET @ComparePrice=@MaxPrice;

SQL Server存储过程复习(一)的更多相关文章

  1. SQL Server存储过程中使用表值作为输入参数示例

    这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...

  2. SQL Server存储过程Return、output参数及使用技巧

    SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...

  3. SQL Server 存储过程(转载)

    SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这 ...

  4. 14、SQL Server 存储过程

    SQL Server 存储过程 存储过程类似函数,可以重复使用.相对于函数,存储过程拥有更强大的功能和更高的灵活性. 存储过程中可以包含逻辑控制语句和数据操作语句,可以接受参数,输出参数,返回单个值或 ...

  5. (摘录)SQL Server 存储过程

    文章摘录:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html SQL Server 存储过程 Transact-SQL中的存储过程 ...

  6. Sql Server 存储过程中查询数据无法使用 Union(All)

    原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正 ...

  7. Yii2.0调用sql server存储过程并获取返回值

    1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...

  8. C# 调用存储过程 Sql Server存储过程 存储过程报错,程序中的try

    C#程序调用Sql Server存储过程,存储过程中报错情况,返回值... 0.SQL存储过程 USE [Opos] GO /****** Object: StoredProcedure [dbo]. ...

  9. sql server 存储过程使用游标记录

    sql server 存储过程使用游标记录--方便下次参考使用 游标的组成: 声明游标 打卡游标 从一个游标中查找信息 关闭游标 释放游标 游标类型: 静态游标 动态游标 只进游标 键集驱动游标 静态 ...

随机推荐

  1. SVO实时全局光照:中等规模场景的GI实现

    RTGI人生成就点unlocked! 快速集成DR+AO+SVO GI,针对中等场景粒度,初步具备全功能,暂未重度优化.附测试对比图.

  2. JavaScript日期对象使用总结

    javascript Date日期对象的创建 创建一个日期对象: var objDate=new Date([arguments list]); 我总结了参数形式主要有以下3种: new Date(& ...

  3. context:annotation-config 与context:component-scan

    <context:annotation-config/> <context:component-scan base-package="com.xx" /> ...

  4. tomcat java.net.BindException: Cannot assign requested address 解决方法

    今天线上TOMCAT启动时遇到了下比较麻烦的问题,错误如下: 21-Apr-2016 15:14:19.077 SEVERE [main] org.apache.catalina.core.Stand ...

  5. 少睡与吸烟影响IQ

        导读:据英国<每日邮报>报道,根据科学家一项最新研究发现,一晚的糟糕睡眠,对大脑可能产生很大损害,就等同头部遭到了一次严重的撞击.长期睡眠不好会造成智力下降,请看[科学探索]揭秘: ...

  6. sql server trace 和 Profiler

    MS SQL Server Profiler概述:       MS SQL Server Profiler是SQL Trace的GUI接口,提供对SQL Server Database Engine ...

  7. [原]OpenGL基础教程(五)缓冲区数据更新方式

    1.glBufferSubData 适用于相同数据类型 void SetPositionY(float y){    vector<Vector3<float>>::itera ...

  8. 【总结】编写自己的JDBC框架

    一.数据库连接池: 在一般用JDBC 进行连接数据库进行CRUD操作时,每一次都会: 通过:java.sql.Connection conn = DriverManager.getConnection ...

  9. 多线程锁--怎么理解Condition

    在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurren ...

  10. QQ微信的备份

    一.问题的提出 windows phone上的微信,累积了太多的微信消息,突然提示“数据库占用空间过大,请及时清理” 二.问题的分析 在朋友发起的群聊中,大量的图片.视频,打开后是下载到本机上的,下载 ...