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;
原文地址:https://www.cnblogs.com/liuguangshou123/p/13852001.html