zoukankan      html  css  js  c++  java
  • SQL SERVER 4 存储过程

    1、什么是存储过程?

    存储过程是SQL查询语句与控制流语句的预编译集合,并以特定的名称保存在数据库中。存储过程也是数据库对象。

    • 存储过程(procedure)类似于C语言中的函数
    • 用来执行管理任务或应用复杂的业务规则
    • 存储过程可以带参数,也可以返回结果
    • 存储过程可以包含数据操纵语句、变量、逻辑 控制语句等。

    2、为什么要使用存储过程?

    存储过程的优点:

    • 执行速度更快
    • 允许模块化程序设计
    • 提高系统安全性
    • 减少网络流通量

    3、存储过程的分类

    系统存储过程
    • 由系统定义,存放在master数据库中
    • 类似C语言中的系统函数
    • 系统存储过程的名称都以“sp_”开头或”xp_”开头
    用户自定义存储过程
    • 由用户在自己的数据库中创建的存储过程
    • 类似C语言中的用户自定义函数

    常用的系统存储过程:

    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命令下的一些的操作
    以文本行方式返回任何输出
    调用语法:
    EXEC xp_cmdshell DOS命令 [NO_OUTPUT]

    4、如何创建存储过程

    定义存储过程的语法:

    • 和C语言的函数一样,参数可选
    • 参数分为输入参数、输出参数
    • 输入参数允许有默认值

    CREATE  PROC[EDURE]  存储过程名

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

                  …… ,

                 @参数n  数据类型 = 默认值 OUTPUT

                 AS

                SQL语句

      GO

    5、调用存储过程

    EXECUTE(执行)语句用来调用存储过程。

    调用的语法如下:

    EXEC  过程名  [参数] 

    EXEC proc_getpc

    如何删除一个存储过程?

    drop 存储过程名 删除存储过程

    6、带参数的存储过程

    存储过程的参数分两种:
    • 输入参数
    • 输出参数
    输入参数:
    用于向存储过程传入值,类似C语言的按值传递;
    输出参数:
    用于在调用存储过程后
    返回结果,类似C语言的
    按引用传递;
     
    return关键字可以终止存储过程或者返回数值

    7、处理存储过程中的错误 

    可以使用PRINT语句显示错误信息,但这 些信息是临时的,只能显示给用户。
    RAISERROR 显示用户定义的错误信息时
    • 可指定严重级别
    • 设置系统变量@@ERROR
    • 记录所发生的错误等
    RAISERROR语句的用法如下:

    RAISERROR (msg_id | msg_str,severity,

       state WITH option[,...n]])

    • msg_id:在sysmessages系统表中指定用户定义错误信息
    • msg_str:用户定义的特定信息,最长255个字符
    • severity:定义严重性级别。用户可使用的级别为0–18级
    • state:表示错误的状态,1至127之间的值
    • option:指示是否将错误记录到服务器错误日志中

     

  • 相关阅读:
    Git远程仓库
    Git操作
    Git理论基础
    Git的配置
    什么是Git
    oracle session_cached_cursors 与 open_cursors参数详解及配置语句
    Jersey的Filter详解
    Spring如何自动注入一个接口多个实现实例
    mave常用设置
    Windows系统-删除指定服务
  • 原文地址:https://www.cnblogs.com/yuchengping/p/3050856.html
Copyright © 2011-2022 走看看