SQL Server存储过程多角度介绍

啊是储存过程:

       
存储过程(Procedure)类似于C#言语中之措施,它是SQL语句和决定流语句之预编译集合。存储过程存储在数据库内,可由于应用程序通过一个调用执行,而且允许用户声明变量、逻辑控制语句以及其它强大的编程功能。

       
存储过程可含蓄逻辑控制语句和数量操作语句子,它可以接受参数、输出参数、返回单个或多独结实集及返回值。

       
存储过程在创立时即当服务器上进行编译,所以实行起来比单个SQL语句快。

        类似于C#遇之类库,SQL Server
提供了片预编译的存储过程,这些囤积过程叫“系统存储过程”。

 

SQL Server中的储存过程的特点如下:

        1>接收输入参数,并向调用过程或者报句返回值。

        2>包含在数据库中实行操作还是调用其他存储过程的编程语句。

       
3>向调用过程返回状态值,指示执行进程是否成功(如果失败,还回来失败原因)

 

应用存储过程发生下列优点:

        1>允许模块化程序设计

光待创建同次于存储过程并将那储存于数据库被,所以即可在程序中调用该过程任意次。

        2>允许再快地推行

假如有操作需要大量底T-SQL代码或欲还执行,存储过程用比T-SQL批处理代码的施行要趁早。将于创立存储过程不时对其开展剖析以及优化,并可每当首涂鸦实施该过程后以该过程外存中的本。但一旦运用T-SQL批处理代码,每次运行T-SQL语句时,都如从客户端重复发送,并且于SQL-Server每次执行这些讲话时,都设本着该展开编译和优化。

        3>减少网络流量

始建以存储过程后,一个亟待数百推行T-SQL代码的操作,由同长长的实施该过程代码的独自语句就只是实现,而不欲在网被发送数百执代码

        4>可看成安全机制下

就算对没有一直实施存储过程中告诉句的权位的用户,也可是给他们实施该存储过程的权杖

 

储存过程分成以下简单近似:

        1>系统存储过程

        2>用户从定义存储过程

 

常用之系统存储过程:

sp_databases:列出服务器上之有数据库

sp_helpdb:报告有关指定数据库或具有数据库的消息

sp_renamedb:更改数据库的称号

sp_tables:返回时环境下可查询的靶子的列表

sp_columns:返回某个表列的音信

sp_help:查看有表的备消息

sp_helpconstraint:查看有表底约束

sp_helpindex:查看有表的目录

sp_stored_procedures:列出当前条件遭受的装有存储过程

sp_password:添加或涂改登录账户的密码

sp_helptext:显示默认值、未加密的存储过程、用户定义之蕴藏过程、触发器或视图的其实文本

另外,还有一个常用之恢宏存储过程:xp_cmdshell,它好成功DOS命令下的片段操作,诸如创建文件夹、列有文件列表等。

 http://www.cnblogs.com/roucheng/

用户定义之蕴藏过程:

除开系统存储过程,用户还足以创造自己之囤过程,可运Microsoft SQL
Management Studio或采用T-SQL语句,使用Microsoft SQL Management
Studio创建存储过程的步子类似于视图,用于创造存储过程的T-SQL语句也CREATE
PROCEDURE。所有的储存过程还创造以此时此刻数据库中。

 

创建不牵动参数的积存过程:

以T-SQL语句创建存储过程的语法如下:

CREATE PROC[EDURE] 存储过程叫

           AS

        SQL语句

调用存储过程:

EXEC 存储过程叫

 

创立带输入参数的的贮存过程:

输入参数:可以以调用时向存储过程传递参数,此类参数可用来当蕴藏过程遭到传来值。

带来输入参数的蕴藏过程T-SQL语句如下:

CREATE PROC[EDURE] 存储过程叫

        @参数1   数据类型  [ = 默认值 ],

        ……,

        @参数n   数据类型  [ = 默认值 ]

   AS

        SQL语句

调用存储过程:

EXEC 存储过程名 参数1之价,……,参数n的价

         或

EXEC 存储过程名  @参数1=值,……,@参数n=值

 

创立带输出参数的贮存过程:

出口参数:如果愿意返回值,则足以使输出参数,输出参数后出“OUTPUT”标记,执行存储过程后,将拿返回值存放于输出参数中,可供应其他T-SQL语句读取访问。

带来输出参数的囤过程T-SQL语法如下:

CREATE PROC[EDURE] 存储过程叫

        @参数1   数据类型  [ OUTPUT ],

        ……,

        @参数n   数据类型  [ OUTPUT ]

   AS

        SQL语句

调用存储过程:

EXEC 存储过程名 变量名 OUTPUT