zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    2019.9.25 初级数据结构——树状数组
    2019.9.29 陪审团
    2019.9.27 硬币
    0070-星星阵
    0069-简单的回文数问题
    0068-简单的求和问题
    0067-水仙花数
    0066-若干个数求和问题
    0065-数方块
    0064-简单的平方和
  • 原文地址:https://www.cnblogs.com/roucheng/p/3541165.html
Copyright © 2011-2022 走看看