前言
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集
区别
触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行
作用
- 执行速度更快—因为存储过程是预编译过的
- 模块化程序设计—类似方法的复用
- 提高系统的安全性—防止SQL注入
- 减少网络流量—只需传输存储过程的名称即可
分类
- 系统存储过程
以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作 - 用户自定义存储过程
用户创建的存储过程是由用户创建并完成某一特定功能的存储过程
#应用 - 创建语句
CREATE PROC sp_name(<—这里是你想好的存储过程的名字)
@[参数名] [类型],@[参数名] [类型]
as
begin
…
end - 调用存储过程
基本语法:exec sp_name [参数名] - 示例
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: 谷浩樟
-- Create date: 2018-08-19
-- Description: 增加新闻
-- =============================================
CREATE PROCEDURE [dbo].[news_insert]
@title varchar(100),
@content text,
@caid int
AS
BEGIN
INSERT INTO news(title,[content],caId)
VALUES(@title,@content,@caid)
END
总结
存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用。 所以广义上来说, 只要是被存储在数据库,可供外部直接调用以修改数据的子程序(包括函数和过程)都可以被看做是存储过程。