zoukankan      html  css  js  c++  java
  • 数据库系列之T-SQL(存储过程)

    什么是存储过程


    存储过程是保存在数据库的函数,可以被应用程序或其它存储过程调用。

    存储过程有什么用


    用于实现业务逻辑(特别是需要事务的业务)。
    1 优点
    减少网络通信量
    执行速度更快
    更强的适应性(有时候发布系统无需更新客户端)
    分布式工作
    减少客户端的负荷
    2 缺点
    增加服务器的负荷

     

    常用的系统存储过程

    系统存储过程    说明
    sp_help    用于查看对象信息
    sp_helpdb    用于查询数据库的信息
    sp_helpconstraint    查看某个表的约束
    sp_helpindex    查看某个表的索引
    sp_databases    用于显示所有数据库的信息,如数据库名和数据大小。
    sp_renamedb    更改数据库的名称
    Sp_rename    用于在当前数据库更改用户创建的对象名称,如数据表、字段、索引等
    sp_tables    返回当前数据库中数据表和视图
    sp_columns    返回某个数据表或视图的列信息
    sp_password    添加或修改登录帐户的密码

    调用系统存储过程

    exec sp_databases  --列出当前系统中的所有数据库
    use booksmanager
    go
    exec sp_tables  --列出数据库booksmanager中所有数据表和视图
    exec sp_columns books --列出图书表的列信息
    exec sp_help books --查看图书表的所有信息
    exec sp_helpconstraint books --查看图书表的约束
    exec sp_helpindex books --查看图书表的索引

    扩展存储过程

    扩展存储过程(Extended  stored  procedured)是对动态链接库(DLL)函数的调用。
    扩展存储过程通常是以“XP_”为前缀。

    用户自定义存储过程

    1 不带参数的存储过程

    (1)语法
    CREATE  PROCEDURE  存储过程名
    AS
      ………
      ………
      ………
    建议:自定义存储过程的名称最好以USP_开头
    (2)调用带输入参数的存储过程
    EXEC  存储过程名

    2 带参数的存储过程

    (1)语法
    CREATE  PROCEDURE  存储过程名
        @参数1  数据类型 [=默认值],
         ……
        @参数n  数据类型 [=默认值]
    AS
      ………
      ………
      ………
    (2)调用带输入参数的存储过程
    方式一:
    exec usp_score_byparam 'SQL Server基础编程',70
    方式二:
    exec usp_score_byparam @coursename='SQL Server基础编程' ,@pass=70

    3 带输出参数的存储过程

    (1)语法
    CREATE  PROCEDURE  存储过程名
        @参数1  数据类型 [=默认值],
         ……
        @参数n  数据类型 OUTPUT
    AS
      ………
      ………
      ………
    (2)调用带输出参数的存储过程
    declare @result  int
    exec usp_ADD 20,30,@result output
    print '运算结果:'+str(@result,5)

  • 相关阅读:
    UNIX网络编程--简介(一)【转】
    linux网络编程--网络编程的基本函数介绍与使用【转】
    微内核VS宏内核【转】
    Linux内核同步机制--自旋锁【转】
    多线程中的信号机制--signwait()函数【转】
    线程同步--递归锁和非递归锁【转】
    linux中线程池【转】
    多进程多线程优先级理解--优先级反转【转】
    【转】如何检测wifi信号强度? -- 不错
    【转】安卓手机有安全模式?安卓4.1安全模式介绍
  • 原文地址:https://www.cnblogs.com/cmhunter/p/4299875.html
Copyright © 2011-2022 走看看