所有设计优良的 Microsoft® SQL Server™ 2000 应用程序都应当使用存储过程。不论是否将应用程序的业务逻辑写入存储过程都应如此。甚至连没有业务逻辑组件的标准 Transact-SQL 语句,在用参数打包成存储过程后也能获得性能收益。编译进存储过程的 Transact-SQL 语句在执行时可省去大量的处理。
存储过程的另一个优点是客户端执行请求使用网络的效率比将等效的 Transact-SQL 语句发送到服务器高。例如,假设应用程序需要将一个大的二进制值插入 image 数据列。为使用 INSERT 语句发送数据,该应用程序必须将该二进制值转换为字符串(其大小翻倍),然后发送到服务器。服务器再将该值转换回二进制格式以存储在 image 列中。
相反,应用程序可以创建下列格式的存储过程:
CREATE PROCEDURE P(@p1 image) AS INSERT T VALUES (@p1)
当客户端应用程序请求执行过程 P 时,image 参数值将一直以二进制格式发送到服务器,从而节省处理时间并减少网络流量。
如果 SQL Server 存储过程中包含业务服务逻辑,因为业务服务逻辑将处理移动到数据,而不是将数据移动到处理,因而存储过程能提供更大的性能收益。
存储过程的优点
(1)存储过程的能力大大增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的 运算。
(2) 可保证数据的安全性和完整性。
● 通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。
● 通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。
(3) 再运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。 由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。
(4)可以降低网络的通信量。
(5) 使体现企业规则的运算程序放入数据库服务器中,以便:
● 集中控制。
● 当企业规则发生变化时在服务器中改变存储过程即可,无须修改任何应用程序。企业规则的特点是要经常变化,如果把体现企业规则的运算程序放入应用程序中,则当企业规则发生变化时,就需要修改应用程序工作量非常之大(修改、发行和安装应用程序)。如果把体现企业规则的 运算放入存储过程中,则当企业规则发生变化时,只要修改存储过程就可以了,应用程序无须任何变化。
1.使用企业管理器创建用户存储过程
操作步骤如下:
(1)启动SQL Server企业管理器。
(2)在“控制台根目录”窗口,展开“SQL Server组”,首先,选择“数据库”,然后,选择“存储过程”,单击鼠标右键,打开快捷菜单。
(3)在打开快捷菜单中,选择“新建存储过程”菜单命令,进入“存储过程属性”窗口。
(4)在“存储过程属性”窗口,在文本框中输入存储过程代码,单击“确定”,结束存储过程的创建。
2.使用T-SQL语句创建用户存储过程
SQL命令格式:
CREATE PROC [ EDURE ] <Procedure_name> [ ; Number ]
[ { @parameter Data_type }
[ VARYING ] [ = Default ] [ OUTPUT ] ] [ ,...n ]
[ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION }]
[ FOR REPLICATION ]
AS sql_statements
功能:创建一个用户存储过程,并保存在数据库中。
参考资料:无