数据库之存储过程

一、概述

SQLserver中视图通过简单的select查询来解决复杂的查询,但是视图不能提供业务逻辑功能,而存储过程可以办到。

二、什么是存储过程

存储过程procedure是一组为了完成特定功能的SQL语句的集合,经编译后存储存储在数据库中,用户通过制定存储过程的名称big给出参数来执行。

 

存储过程中可以在包含逻辑控制语句和数据操纵语句,它可以接受参数,输出参数,返回单个或者多个结果以及返回值。

 

由于存储过程在创建时即在数据库服务器上进行了编译变存储在了数据库中,所以存储过程运行要比单个的SQL语句要快。同时由于在调用时时只需提供存储过程的名字和必要额参数信息,所以在一定的程度上也可以减少网络流量、简单网络负担。

 

存储过程的优点:

1.模块化编程

2.性能:更快的执行 减少网络流量

3.安全

 

4.创建一个存储过程

 

CREATE PROCEDURE myStroredProcedure AS
 
....
 
OR
 
CREATE PROCEDURE mYsTOREDpROCEDURE @{pARAMETER  Name} {data type} AS
 
eg:
CREATE  PROCEDURE  LatestTasks @Count int AS
SET ROWCOUNT @Count
SELECT TaskName AS LatestTasks,DataCreated
FROM Tasks
ORDER BY DateCreated DESC

 

 

5、执行存储过程

EXECUTE LatestTasks
EXEC LatestTasks
 
EXEC LatestTasks @Count=5

 

6、修改存储过程

若修改存储过程,需要换掉CREATE使用ALTER

 

ALTER PROCEDURE LatestTasks @Count in AS
SET ROWCOUNT @Count
SELECT TaskName AS "Latest Tasks",Descripition , DateCreated
FROM Tasks
ORDER BY DateCreated DESC

 

  

三、SQLserver系统存储过程

SQLserver中包含了大量的系统存储过程,以帮助数据库关系任务。

通过GUI执行的任务可以通过系统存储过程来完成。

有些东西可以用系统存储过程,包括:

配置安全账户

建立链接服务器

创建一个数据库维护计划

创建全文检索目录

添加远程登录

配置复制

设置调度作业

...

SQL Server命名约定

系统存储过程节点以sp_开始