zoukankan      html  css  js  c++  java
  • sql server 存储过程和视图的区别

    视图

    要把视图看做是一张表,包含了一张表的部分数据或者多个表的综合数据,视图的使用和普通表一样;

    视图建立并存储在服务器,有效减少网络数据流量,提高安全性;

    视图中不存放数据,数据依然存放在视图引用的原始数据表中;

    可以根据需求来提前创建不同的视图。

    企业管理器创建视图:

    T-SQL创建视图:

    复制代码
    USE DBName
    go
    IF EXISTS(SELECT * FROM sysobjects WHERE name=view_Name)
        DROP VIEW view_Name
    CREATE VIEW view_Name
        AS
            <SELECT语句>
    复制代码

    代码示例:

    存储过程

    啥是存储过程?

    就是事先存储好的SQL语句,放在数据库端,需要使用时直接调用存储过程就可以执行相应的SQL语句。存储过程可带参数,也可返回结果。

    存储过程有啥优势呢?

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

    传统SQL语句与存储过程执行效率的对比:

    跟视图有啥区别呢?

    视图仅仅用来查询,而存储过程可以用来增删查改;视图是数据库的一张虚拟表,可以像表一样使用,而存储过程本质来说还是在执行SQL语句。

    如何查看存储过程?

    存储过程分类:

    三种:系统存储过程、扩展存储过程、自定义存储过程

    系统存储过程:由“sp_"开头,由系统定义与维护,需要学会使用。

    扩展存储过程:“xp_”开头,以DLL形式单独存在,至今不知道有啥鸟用!

    自定义存储过程:根据需要自定义,类似C#里面的“方法”的存在。

    存储过程调用方法:

    EXECUTE    过程名 【参数】
    简写:EXEC    过程名 【参数】

    代码示例:

    重点!自定义存储过程!!!

    复制代码
    1 use DB
    2 go
    3 create procedure(缩写:proc) 存储过程名
    4                 @参数1  数据类型=默认值  OUTPUT
    5                 ……
    6                 @参数n   数据类型=默认值  OUTPUT    
    7 as
    8                  SQL语句
    9 go
    复制代码

    自定义存储过程的内容全在上面规范里面,其中:

    第3行,procedure可以缩写为proc;

    第4~6行的参数定义可有可无,若有,在调用存储过程时需要一起传递过来;默认值可有可无,若有,在调用存储过程时可以不传递参数值;OUTPUT关键字可有可无,若有在调用时需要有一个变量来接受它的返回值

     

    什么时候使用存储过程?

    当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程;当在一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个状态的判断更改等)要考虑;还有就是比较复杂的统计和汇总也要考虑,但是过多的使用存储过程会降低系统的移植性。

    https://www.cnblogs.com/JustYong/p/5359689.html

  • 相关阅读:
    开博客啦
    C语言 变长参数表的使用方法
    禅道程序员
    【转】函数式编程另类指南
    Servlet中JSP页面跳转的两种方法以及其区别
    《C程序设计语言》(学习笔记)——结构体
    C#保存wps和office表格.数据源为list<T>类型
    中国网建的短信接口实现
    C#保存wps和office表格.数据源为list<T>类型,
    MD5加密
  • 原文地址:https://www.cnblogs.com/baili-luoyun/p/11052505.html
Copyright © 2011-2022 走看看