数据库快照的简要说明

数据库快照,顾名思义,是在一个时间点上的数据库视图。它的特点在2005的SQL Server版本介绍。快照有很多应用场景,但快照开始设计与报告服务的目的。例如,我需要一个2011平衡表,要求数据保持在零的2011年12月31日,这是可以实现的一个快照。快照也可以结合镜实现阅读和写作的目的。现在让我们看看快照是什么。

快照是什么



数据库快照是SQLServer数据库(源数据库)的只读静态视图。换句话说,快照可以理解为只读数据库:

提供静态视图,以便为报表提供服务。

您可以使用数据库快照来还原数据库,与备份恢复相比,这个速度将大大提高(我将解释原因)。

与数据库镜像相结合,提供了读写分离。

例如,在数据更改之前作为测试环境或备份,我需要大量导入或删除数据,或者在快照之前向测试人员提供数据。如果有问题,快照可以在快照生成时恢复到状态。

SQL Server视图

什么是视图

视图是一个包含从查询结果集派生出来的内容的虚拟表,只有在视图上建立索引之后,它才会被具体化。

视图可以过滤和处理数据,而不是直接访问底层表。例如:创建一个视图,只在源表中显示少数列数据,不允许用户访问底层表,而不允许查看访问。

为什么使用视图

1,如果有更复杂的多表查询,我们可以把这些复杂的语句放在视图中,我们只需要使用简单的语句来查询视图。

2,保护基表,无法检索敏感列。

三.在视图中添加索引可以提高效率。

创建一个视图

1、可以使用SSMS工具创建,选择表格视图->新视图>选择列->输入名称可以节省。

2。使用T-SQL创建


如果存在(SELECT * FROM sysobjects WHERE name = 'newview ')-如果有缺失
删除视图新景

创建视图的新视角--创建一个视图
作为
选择= id,名字=名字,年龄=学生年龄

SELECT * FROM新景


关于秩序的


如果存在(SELECT * FROM sysobjects WHERE name = 'newview ')-如果有缺失
删除视图新景

创建视图的新视角--创建一个视图
作为
选择前10名学号=学号,姓名=姓名,年龄=学生年龄
按ID号,如果你使用命令关键字,您必须指定顶

SELECT * FROM新景


修改视图


改变视图的新视角
作为
从学生中选出前20名
按ID号,如果你使用命令关键字,您必须指定顶



更新架构


-新修改过的视图用于查询整个列
-在此基础上修改底层表结构
改变学生表添加邮件varchar(20)

源表更新了架构,但是视图不会改变调用系统存储过程来更新的需要。
执行sp_refreshview studentview
-然后添加新列


更新视图

添加、删除和修改视图实际上是对源表的修改。然而,由于许多限制,例如,只有几个字段可以从多个表中检索,但某些源表中的一些值在插入时无效。

因此,更新源表以更新视图。

数据库快照

数据库快照是某个时间点上源数据库的只读静态视图,可用于恢复数据库。

使用数据库快照必须与源数据库在同一个服务器实例中,不能删除、分离或还原源数据库。

使用数据库快照


-源表中的数据
使用新的

从学生中选择*






如果存在(查询sys.databases name = 'webdb_dbss)
删除数据库webdb_dbss——存在被删除

webdb_dbss --创建数据库创建数据库快照
在
(
名称=新,
文件名=想: webdb_dbss。SS,注意后缀。SS
)如果有许多文件需要逐一指出
作为新的快照





-修改源数据库数据
使用新的

更新学生集名称=伟大id是10

-查询源数据库数据
从id = 10的学生中选择*

-查询快照数据
使用webdb_dbss

从id = 10的学生中选择*



修改源数据库,快照数据库不改变。


-修改学生表结构
修改表webdb.dbo.student加{地址} varchar(20)
SELECT * FROM webdb.dbo.student

它还没有出现在快照中
SELECT * FROM webdb_dbss.dbo.student

-删除源数据库学生表
webdb.dbo.newtable表

-查询表仍然存在的数据库快照
SELECT * FROM webdb_dbss.dbo.newtable


将数据从快照还原到快照创建时间




还原数据库WebDB
从database_snapshot = 'webdb_dbss


SELECT * FROM webdb.dbo.student --修改值改回

SELECT * FROM webdb.dbo.newtable --删除表改回来




我们知道,在快照之后创建的任何修改后的数据都将被更改!