存储过程定义:
存储过程是为完成特定的功能而汇集在一起的一组SQL程序语句,经编译后存储在数据库中的SQL程序。
在 SQL Server 中使用存储过程而不使用存储在客户端计算机本地的 Transact-SQL 程序的优点包括:
(1)存储过程已在服务器注册。
(2)存储过程具有安全特性(例如权限)和所有权链接,以及可以附加到它们的证书。
(3)存储过程可以强制应用程序的安全性。
(4)存储过程允许模块化程序设计。
(5)存储过程是命名代码,允许延迟绑定。
(6)存储过程可以减少网络通信流量。
在SQL Server中执行存储过程
sql语句执行的时候要先编译,然后执行。存储过程就是编译好了的一些sql语句。用的时候直接就可以用了。
在SQL Server的查询分析器中,输入以下代码:
declare @tot_amt int
execute order_tot_amt 1,@tot_amt output
select @tot_amt
以上代码是执行order_tot_amt这一存储过程,以计算出定单编号为1的定单销售金额,我们定义@tot_amt为输出参数,用来承接我们所要的结果。
存储过程具有以下特点:
1.具有立即访问数据库的能力;
2.是数据库服务器端的执行代码,在服务器执行操作时,减少网络通讯,提高执行效率。
3.保证数据库安全,自动完成提前设定的作业。
基本语法如下:
CREATE PROC[EDURE] procedute_name
AS sql_statements
创建带参数的存储过程
代码示例如下:
CREATE PROC spInsertShipper
@CompanyName nvarchar(40),
@photo nvarchar(24)
AS
INSERT INTO Shippers
VALUES
(@CompanyName,@photo)
GO
为参数提供默认值
CREATE PROC spInsertShipperOptionalPhone
@CompanyName nvarchar(40),
@photo nvarchar(24) = NULL
AS
INSERT INTO Shippers
VALUES
(@CompanyName,@photo)
GO
存储过程分为三种:
1)、系统存储过程:以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作, 如 sp_help就是取得指定对象的相关信息
2)、扩展存储过程以XP_开头,用来调用操作系统提供的功能 exec master..xp_cmdshell 'ping 10.8.16.1'
3)、用户自定义的存储过程,这是我们所指的存储过程