什么是存储过程
为以后使用而保存的一条或多条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;