zoukankan      html  css  js  c++  java
  • SQL存储过程

    什么是存储过程

    为以后使用而保存的一条或多条SQL语句。可视为批文件。

    为什么使用存储过程

     1.把处理封装到一个单元中,简化复杂操作。

     2.所以开发人员和应用程序可以使用同一存储过程,所使用的代码是相同的,因此保证了数据的一致性。

    3.如果表名、列名或业务逻辑有变化,那么只需要更改存储过程的E代码。

     执行存储过程

    EXECUTE AddNewProduct('JTS01','Stuffed Eiffel Tower',6.49,'Plush Stuffed')

    这里执行了一个名为AddNewProduct的存储过程,将一个新产品添加到Products表中。

    AddNewProduct有4个参数,这4个参数匹配存储过程中的4个预期变量。

    此存储过程将新行添加到Products表。并将传入的值赋给相应的列。

    Products表还有prod_id这个列,这个列是这个表的主键,存储过程会自动生成ID

    创建存储过程:

    统计Customers表中,email不为NULL的用户。

    CREATE PROCEDURE MailingListCount
    AS
    DECLARE @cnt INTERGER
    SELECT @cnt=COUNT(*)
    FROM Customers
    WHERE NOT cust_email IS NULL;
    RETURN @cnt;

      执行存储过程:

    DECLARE @ReturnValue INT
    EXECUTE @ReturnValue=MailingListCount;
    SELECT  @ReturnValue

    在Orders表中,创建一个新订单。

    CREATE PROCEDURE NewOrder @cust_id CHAR()
    AS
    DECLARE @order_num INTERGER
    SELECT @order_num=MAX(order_num)
    FROM ORDER
    
    SELECT @order_num= @order_num+1
    
    INSERT INTO Orders(order_num,order_date,cust_id)
    VALUES(@order_num,GETDATE(),@cust_id)
    
    RETURN @order_num;
  • 相关阅读:
    [洛谷P2824][题解][HEOI2016/TJOI2016]排序
    [整理]CSP-S2019第一轮试题解析
    [整理]Luogu CSP2020第一轮模拟赛
    [洛谷P4395][题解][BOI2003]Gem 气垫车
    [洛谷P5322][BJOI2019][题解]排兵布阵
    [整理]U S A C O 代 码 小 合 集
    第02组Alpha冲刺 总结
    第02组 Alpha冲刺 (6/6)
    第02组 Alpha冲刺 (5/6)
    第02组 Alpha冲刺 (4/6)
  • 原文地址:https://www.cnblogs.com/liuguangshou123/p/13852001.html
Copyright © 2011-2022 走看看