数据库——存储过程

来源:互联网 发布:数据恢复软件 编辑:程序博客网 时间:2024/05/09 14:19

       在数据库中,存储过程属于一种对象,是一种高效的安全的访问数据库的方法。

       下边我们就数据库中的存储过程总结它的相关知识点。我们分为概述,实现和管理三个方面来总结。

 

       一,存储过程的概述:

            1,概念:存储过程(StoredProcedure)是在数据库服务器端执行的一组T-SQL语句的集合,经编译后存放在数据库服务器中。它能够向用户返回数据,向数据库中写入或修改数据,还可执行系统函数和管理操作。

 

            2,优点:a,执行速度快:

                               b,模块化程序设计

                               c,减少网络通讯量

                               d,保证系统的安全性

                               e,实现代码的重复使用

 

             3,分类:a,用户存储过程

                             b,系统存储过程

                            c,扩展存储过程:是以在SQL Server环境外执行的动态链接库(DLL,Dynamic Link Libraries)来实现。通过前缀“xp_”来标识。

 

      二,实现存储过程:

                1,创建(利用createprocedure):

                      a,简单的存储过程:

                          createproc[edure] procedure_name [;number]

                             [{@parameter data_type}

                                [varying][=default][output][,n……]]

                            [with

                                  {recompile| encryption |encompile,encryption}]

             [for replication ]

              as sql_statement[……n]        

          参数说明:1,procedure_name新存储过程的名称;

                            2,number,是可选的整数用来对同名的过程进行分组;

                           3,@parameter过程中的参数;

                           4,data_type参数的数据类型;

                           5,varying指定作为输出参数支持的结果集,仅适用于游标参数;

                           6,default参数的默认值;

                           7,output参数的默认值;

                           8,recompile表示SQLServer不会缓存该计划,该过程将在运行时重新编译。

                          9,as,制定过程要执行的操作;

                         10,SQL_statament,T-sql语句。

                  

                   b,带参数的存储过程:在进行创建时,需要我们在过程中定义我们需要 参数。

                   c,待返回值的:1,可以使用print打印语句来进行提

                                             2,或利用raiserror函数,来返回错误信息来提

                                            3,还可以使用return语句从过程或查询中无条件的退出!

 

               2,执行存储过程:

                      a,通过execute或exec语句执行,语法:

                           [exec[ute]] {[@return_status]=procedure_name[;number]|@procedure_name_var}

                                                [[@parameter=]{value|@variable[output]|[default]}] [,n……]

                                                  [with recompile]

 

                         参数说明:1,@return_status,存储过程的返回状态,

                                           2,with recompile强制编译新的计划。

                                           3,其他的跟创建中的意思相同。

 

 

     三,管理存储过程:

             1,查看:利用sp_helptext查看存储过程的文本信息,利用sp_depends查看存储过程的相关性,利用

               sp_help查看存储过程的一般信息。

                               语法分别是:sp_helptext[@objname=]'name'(对象名称)

                         sp_depends[@objname=]'object'(被检查相关性的数据库对象)

                         sp_help[[@objname=]name]

 

            2,修改:将创建中的create改为alter即为修改的语法。此不会改权限也不会改名称。

                                重命名:sp_rename可以改数据用户创建的对象(表,存储过程,触发器,列等)的名称;

                                               语法:sp_rename[@objname=]'objext_name'

                            [@newname=]'new_name'

                            [,@objtype=]'object_type'

 

            3,删除:利用drop  procedure语句即可方便删除。

 

            4,重新编译:

              a,在创建存储过程时设定重新编译,在定义时指定with recompile即可

              b,在执行存储过程时设定重新编译,在执行时指定with recompile即可

              c,使用系统存储过程设定重新编译,sp_recompile[@objname=]'object'】

0 0
原创粉丝点击