视图

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

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

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

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

企业管理器创建视图:

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

sql server 存储过程和视图的区别的更多相关文章

  1. 数据库 --> SQL Server 和 Oracle 以及 MySQL 区别

    SQL Server 和 Oracle 以及 MySQL 区别 三者是目前市场占有率最高(依安装量而非收入)的关系数据库,而且很有代表性.排行第四的DB2(属IBM公司),与Oracle的定位和架构非 ...

  2. SQL Server,MySQL,Oracle三者的区别

    SQL Server,MySQL,Oracle三者的区别 2016-10-14 转自:SQL Server,MySQL,Oracle三者的区别 目录 1 Oracle.Sql Server.MySql ...

  3. sql server 维护计划与作业关系区别

    sql server 维护计划与作业关系区别 对于二者的区别,你可以把维护计划看作是针对数据库进行维护的作业模板.自定义作业具有更广泛的用途,当然,也具有更复杂的操作.所以,如果 仅仅是做个数据库优化 ...

  4. 在SQL Server中对视图进行增删改

    原文:在SQL Server中对视图进行增删改 Lesktop开源IM发布以后,有一些网友问及如何在嵌入IM后与自己网站的用户系统整合(即如何让嵌入的IM直接使用网站原有的用户数据库,而不需要将已有的 ...

  5. Sql Server 存储过程中查询数据无法使用 Union(All)

    原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正 ...

  6. SQL Server主要系统视图说明

    SELECT * FROM sys.all_columns --显示属于用户定义对象和系统对象的所有列的联合--https://docs.microsoft.com/zh-cn/sql/relatio ...

  7. Microsoft SQL Server 存储过程

    Microsoft SQL Server 存储过程 TRIGGER DDL触发器:主要用于防止对数据库架构.视图.表.存储过程等进行的某些修改:DDL事件是指对数据库CREATE,ALTER,DROP ...

  8. SQL Server存储过程中使用表值作为输入参数示例

    这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...

  9. SQL Server存储过程Return、output参数及使用技巧

    SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...

随机推荐

  1. python Django基础操作

    Django常用命令 创建Django项目 Django-admin startprotect  mysite 创建项目以后,以下生成的文件 最外层的file:mysite/ 根目录只是你的项目的容器 ...

  2. python 手机App数据抓取实战二抖音用户的抓取

    前言 什么?你问我国庆七天假期干了什么?说出来你可能不信,我爬取了cxk坤坤的抖音粉丝数据,我也不知道我为什么这么无聊. 本文主要记录如何使用appium自动化工具实现抖音App模拟滑动,然后分析数据 ...

  3. Pod——状态和生命周期管理及探针和资源限制

    一.什么是Podkubernetes中的一切都可以理解为是一种资源对象,pod,rc,service,都可以理解是 一种资源对象.pod的组成示意图如下,由一个叫”pause“的根容器,加上一个或多个 ...

  4. 接口请求 URL转码

    什么是URL转码 不管是以何种方式传递url时,如果要传递的url中包含特殊字符,如想要传递一个+,但是这个+会被url会被编码成空格,想要传递&,被url处理成分隔符. 尤其是当传递的url ...

  5. Linux 生成SSL证书 供 nginx使用

    首先执行如下命令生成一个key openssl genrsa -des3 -out ssl.key 1024 然后他会要求你输入这个key文件的密码.不推荐输入.因为以后要给nginx使用.每次rel ...

  6. 在论坛中出现的比较难的sql问题:4(row_number函数+子查询 分组连续编号问题)

    原文:在论坛中出现的比较难的sql问题:4(row_number函数+子查询 分组连续编号问题) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 求一查询语句 http: ...

  7. 查准率(precision)和查全率(recall)

    一.理解查准率(precision)& 查全率(recall) 我们在平时常用到的模型评估指标是精度(accuracy)和错误率(error rate),错误率是:分类错误的样本数站样本总数的 ...

  8. SQLAlchemy 在查询期间丢失与MySQL服务器的连接

    遇到问题 pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query') 建立的 pymysq ...

  9. Recastnavigation 创建 off-mesh link 的潜规则

    Recastnavigation 在创建off-mesh link 时,发现有的off-mesh link 无法寻路(虽然在地图上能看到off-mesh link 的连线   在Google Grou ...

  10. (详细)JAVA使用JDBC连接MySQL数据库(3)-代码部分

    欢迎任何形式的转载,但请务必注明出处. 本节主要内容 项目建立 数据库连接 数据库操作 主函数 点击进入推荐博客(必看) 一.项目建立 如图所示:新建Java Project.Package.Clas ...