什么是存储过程?
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。存储过程可包含程序流、逻辑以及对数据库的查询。他们可以接受参数、输出参数、返回单个或者多个结果集以及返回值。
为什么要使用存储过程?
▶存储过程与其他应用程序共享应用程序逻辑,因而确保了数据访问和修改的一致性。存储过程可以封装业务功能,在存储过程中可以在同一位置改变封装的业务规则和策略。所有的客户端可以使用相同的存储过程来确保数据访问和修改的一致性。
▶存储过程具有安全性和所有权链接,以及可以附加到它们的证书。用户可以被授予权限来执行存储过程而不必直接对存储过程中引用的对象具有权限。
▶存储过程提供了安全机制。即使是没有访问存储过程引用的表或者视图的权限的用户,也可以被授权执行该存储过程。
▶存储过程允许模块化程序设计,存储过程一旦创建,以后即可在程序中调用任意多次。这可以改进应用程序的可维护性,并允许应用程序统一访问数据库。
▶存储过程可以减少网络通讯流量,用户可以通过发送一个单独的语句实现一个复杂的操作,而不需要在网络上发送几百个T-SQL代码,这样减少了再服务器和客户机之间传递的请求的数量。
存储过程种类有哪些?
▷用户自定义存储过程
▷系统存储过程
▷扩展存储过程
存储过程的创建:
CREATE PROC [EDURE] procedure_name [;number]
[{@parameter data_type}
[VARYING] [=default] [OUTPUT]] [,…n]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION}]
AS
Sql_statement[…n]
示例:
存储过程的修改:
方法一:将已有的查询语句进行修改,将create改为alter
ALTER PROCEDURE procedure_name [;number]
[{@parameter data_type}
[VARYING] [=default] [OUTPUT]]
[,…n]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE,ENCRYPTION}]
[FOR REPLICATION]
AS
sql_statement[…n]
方法二:右击相关的存储过程-修改
方法三:右击相关的存储过程-编写存储过程脚本为-ALTER到-新查询编辑器窗口
存储过程的删除:
方法一:使用删除语句进行查询 DROP PROCEDURE procedure_name
方法二:右击相关的存储过程-删除
方法三:右击相关的存储过程-编写存储过程脚本为-DROP到-新查询编辑器窗口