读书人

【达人解释】何为sql2005的数据库快照

发布时间: 2012-03-11 18:15:38 作者: rapoo

【达人解释】何为sql2005的数据库快照
在查找 Sql2000 和 Sql2005区别是搜索到了这段代码

====================================================================
数据库快照
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
例子:
CREATE DATABASE demo2
GO
USE demo2
ALTER DATABASE demo2 SET allow_snapshot_isolation ON --启动快照功能
CREATE TABLE test
(
tid INT NOT NULL primary key,
tname VARCHAR(50) NOT NULL
)
INSERT INTO test VALUES(1, 'version1 ')
INSERT INTO test VALUES(2, 'version2 ')

--连接一

USE demo2
BEGIN TRAN
UPDATE test SET tname= 'version3 ' WHERE tid=2
SELECT * FROM test

--连接二
USE demo2
SET transaction isolation level snapshot
SELECT * FROM test
=======================================================================
不知道这个是干什么的,以及下面的测试sql什么意思?

[解决办法]
本主题介绍了 Microsoft SQL Server 2005 中的新增功能:数据库快照。只有 Microsoft SQL Server 2005 的 Enterprise Edition 提供数据库快照功能。所有恢复模式都支持数据库快照。

数据库快照是数据库(源数据库)的只读、静态视图。多个快照可以位于一个源数据库中,并且可以作为数据库始终驻留在同一服务器实例上。创建快照时,每个数据库快照在事务上与源数据库一致。在被数据库所有者显式删除之前,快照始终存在。

与用户数据库的默认行为不同,数据库快照是通过将 ALLOW_SNAPSHOT_ISOLATION 数据库选项设置为 ON 而创建的,不需要考虑主数据库或模型系统数据库中该选项的设置。

快照可用于报表。另外,如果源数据库出现用户错误,还可将源数据库恢复到创建快照时的状态。丢失的数据仅限于创建快照后数据库更新的数据。

读书人网 >SQL Server

热点推荐