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)

  • 相关阅读:
    http协议相关知识
    linux 常用命令总结
    PHP traits
    php 正则案例
    php 中关于正则 元字符
    【U3D】 第三人称控制器ThirdPersonCharacter添加之后角色原地打转不移动的问题(unity5.3.5f)
    .Net Core异步async/await探索
    IdentityServer4实现单点登录统一认证
    CSAPP-Tiny Web服务器【2】源码解析
    CSAPP-Tiny Web服务器【1】编译搭建
  • 原文地址:https://www.cnblogs.com/cmhunter/p/4299875.html
Copyright © 2011-2022 走看看