- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章解析SQL Server 视图、数据库快照由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
简介数据库快照 。
数据库快照,正如其名称所示那样,是数据库在某一时间点的视图。是SQL Server在2005之后的版本引入的特性。快照的应用场景比较多,但快照设计最开始的目的是为了报表服务。比如我需要出2011的资产负债表,这需要数据保持在2011年12月31日零点时的状态,则利用快照可以实现这一点。快照还可以和镜像结合来达到读写分离的目的。下面我们来看什么是快照.
什么是快照 。
数据库快照是 SQL Server 数据库(源数据库)的只读静态视图。换句话说,快照可以理解为一个只读的数据库。利用快照,可以提供如下好处
提供了一个静态的视图来为报表提供服务 。
可以利用数据库快照来恢复数据库,相比备份恢复来说,这个速度会大大提高(在下面我会解释为什么) 。
和数据库镜像结合使用,提供读写分离 。
作为测试环境或数据变更前的备份,比如我要大批导入或删除数据前,或是将数据提供给测试人员进行测试前,做一个快照,如果出现问题,则可以利用快照恢复到快照建立时的状态 。
SQL Server 视图 。
什么是视图?
视图是一个虚拟的表,内容源于查询的结果集。只有当视图上建立了索引后,才会具体化.
视图可以筛选和处理数据,而不是直接访问基础表。如:创建一个视图,只展示源表中的几列数据,无需授予用户访问基础表的权限,取而代之的是授予视图访问权限.
为什么用视图?
1、如果是比较复杂的多表联查,可以将这些复杂的语句放在视图中完成,而我们只需要使用简单的语句查询视图即可.
2、保护基础表,敏感列无法被检索出.
3、对视图添加索引,可以提高效率.
创建视图 。
1、可以使用SSMS工具创建, 视图->新建视图->选表 选列 ->输入名字保存即可.
2、使用T-SQL创建 。
1
2
3
4
5
6
7
8
|
if exists(
select
*
from
sysobjects
where
name
=
'newView'
)
--如果存在删除
drop
view
newView
go
create
view
newView
--创建视图
as
select
学号=id,姓名=
name
,年龄=age
from
student
go
select
*
from
newView
|
关于order by 。
1
2
3
4
5
6
7
8
9
|
if exists(
select
*
from
sysobjects
where
name
=
'newView'
)
--如果存在删除
drop
view
newView
go
create
view
newView
--创建视图
as
select
top
10 学号=id,姓名=
name
,年龄=age
from
student
order
by
id
desc
--如果使用order关键字 则必须指定top
go
select
*
from
newView
|
修改视图 。
1
2
3
4
5
|
alter
view
newView
as
select
top
20 *
from
student
order
by
id
desc
--如果使用order关键字 则必须指定top
go
|
更新架构 。
1
2
3
4
5
6
7
|
--刚刚修改的视图用的是 * 查询的是全部列
--此时修改基础表架构
alter
table
student
add
mail
varchar
(20)
--这时源表已经更新架构,但是视图并没有改变 需要调用系统存储过程更新一下
EXEC
sp_refreshview studentView
--这时 新的列才会被加进来
|
更新视图 。
对视图进行增、删、改操作,其实就是修改源表。但是由于诸多限制(如由多表联查出的视图,只检索出个别字段,但是插入的时候有些源表上的值是非空的就会出问题),一般不修改视图.
所以更新源表即可更新视图.
数据库快照 。
数据库快照是某一时间点的源数据库的只读静态视图,可以用来恢复数据库.
使用数据库快照必须与源数据库在相同的服务器实例,并且不能对源数据库进行删除、分离、或还原操作.
使用数据库快照 。
1
2
3
4
|
--源表中数据
use webDB
go
select
*
from
student
|
。
1
2
3
4
5
6
7
8
9
10
11
|
if exists(
select
*
from
sys.databases
where
name
=
'webDB_DBSS'
)
drop
database
webDB_DBSS
--存在则删除
go
create
database
webDB_DBSS
--创建数据库快照
on
(
name
= webDB,
filename=
'd:webDB_DBSS.ss'
--注意后缀.ss
)
--如果有多个文件需要一一指出
as
snapshot
of
webDB
go
|
1
2
3
4
5
6
7
8
9
10
11
12
|
--修改源数据库数据
use webDB
go
update
student
set
name
=
'伟大'
where
id = 10
--查询源数据库数据
select
*
from
student
where
id = 10
--查询快照数据
use webDB_DBSS
go
select
*
from
student
where
id = 10
|
。
修改源数据库,快照数据库并未发生改变.
1
2
3
4
5
6
7
8
9
10
11
12
|
--修改student表架构
alter
table
webDB.dbo.student
add
[address]
varchar
(20)
select
*
from
webDB.dbo.student
--快照中依然没有
select
*
from
webDB_DBSS.dbo.student
--删除源数据库student表
drop
table
webDB.dbo.newTable
--查询数据库快照该表 依然存在
select
*
from
webDB_DBSS.dbo.newTable
|
从快照恢复数据到快照创建时刻 。
。
1
2
3
4
5
6
7
|
restore
database
webDB
from
database_snapshot=
'webDB_DBSS'
go
select
*
from
webDB.dbo.student
--修改的值被改回
select
*
from
webDb.dbo.newTable
--被删除的表 改回
|
。
以上得知:任何创建快照之后的修改数据都将被改回! 。
最后此篇关于解析SQL Server 视图、数据库快照的文章就讲到这里了,如果你想了解更多关于解析SQL Server 视图、数据库快照的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
阅读目录 1、视图介绍 2、创建视图 3、查询视图 4、修改视图 5、删除视图 6、检查选项
基于函数的视图你已经get了,基于类的视图get了吗?CBV本质不知道?点进来看源码分析~ Django 视图之FBV 与 CBV FBV(function base views) 基于函数的视图,就
SQLite 视图(View) 视图(View)只不过是通过相关的名称存储在数据库中的一个 SQLite 语句。视图(View)实际上是一个以预定义的 SQLite 查询形式存在的表的组合。 视图
视图 什么是视图?视图的作用是什么? 视图(view)是一种虚拟存在的表,是一个逻辑表,它本身是不包含数据的。作为一个select语句保存在数据字典中的。 通过视图,可以展现基表(用来创建视图
代码如下: CREATE OR REPLACE VIEW BLOG_V_ADMIN (ID,NICKNAME,SEX,EMAIL,
创建视图 视图包含应用的 HTML 代码,并将应用的控制器逻辑和表现逻辑进行分离。视图文件存放在 resources/views 目录中。下面是一个简单的视图示例:
加密测试的存储过程 ? 1
简介数据库快照 数据库快照,正如其名称所示那样,是数据库在某一时间点的视图。是SQL Server在2005之后的版本引入的特性。快照
一 ,mysql事务 MYSQL中只有INNODB类型的数据表才能支持事务处理。 启动事务有两种方法 (1) 用begin,rollback,commit来实现 复制代码代码如
前言 在日常开发中,存储数据的最常用的方式便是数据库了,其中最为著名的便是MySQL数据库,因它简便易于上手而且可扩展性强大,跨平台使得它广为使用。上一篇文章,我们讲到了它的安装,今天我们就来
1、视图 视图:VIEW,虚表,保存有实表的查询结果,实际数据不保存在磁盘 物化视图:实际数据在磁盘中有保存,加快访问,MySQL不支持物化视图 基表:视图依赖的表 视图中的数据事实上
事项开启和使用 ? 1
代码如下: create PROCEDURE sp_decrypt(@objectName varchar(50)) AS begin begin tran&
前言 在之前 《Oracle打怪升级之路一》中我们主要介绍了Oracle的基础和Oracle常用查询及函数,这篇文章作为补充,主要介绍Oracle的对象,视图、序列、同义词、索引等,以及PL/SQL编
我是一名优秀的程序员,十分优秀!