当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 深入介绍:SQL Server变更管理工具

MSSQL
SQL Server 索引结构及其使用(一)
SQL中查询数据表字段名称的查询语句
SQL Server 索引结构及其使用(二)
SQL技巧:使用SQL子选择来合并查询
如何恢复/修复MS SQL数据库的MDF文件
获取SQL Server元数据的几种方法
在SQL Server中通过原子建立分子查询
保护SQL Server数据库的十个步骤介绍
SQL Server数据库崩溃后的恢复方法简介
SQL Server与Oracle、DB2的性能比较
SQL Server中用索引视图查看性能状况
利用SQL Server系统函数进行代码存档
将 MS SQL Server 2005 SP2 整合到安装文件
如何改进SQL Server安全系统
SQL Server管理常用的SQL和T-SQL简介
精华推荐:SQL Server的用户及权限
Sql server 如何得到汉字的声母
sql server中order by部分使用方式
在SQLServer中用XQuery分解XML数据
两个sql server 2000的通用分页存储过程

MSSQL 中的 深入介绍:SQL Server变更管理工具


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 89 ::
收藏到网摘: n/a

当SQL Server 2005起动并运行的时候,有一些事情是你可以做,并且可以让你的生活变得像程序员一样更加简单——不需要变成数据库管理员。最常见的一个在背上的针芒就是变更管理。虽然大多数的开发人员都很熟悉Microsoft Source Safe或者其他的资源控制技术,数据库开发人员可用来帮助轻松管理变更的工具也是非常有限的。SQL Server 2005包括了Visual Source Safe集成在内。在这篇文章中我不会涉及Source Safe。我将会把重点集中在SQL Server本身可以让你的项目前进的技巧和技术上。在这篇文章中,我将会回答以下两个大问题:

  1、我如何回滚因错误产生的变更?

  2、我如何将变更从一个数据库移到另一个数据库中?

  认识到在开发时间里你可能会犯错误,那么在每次更改之前都先给数据库进行一次拷贝。你可能会发现自己最终被埋在数据库的几百份拷贝中——我就见过这种情况发生。这会变得非常难以处理。如果你的工作方式更像我,那么你会想要工作在开发数据库中,只是简单的找到一种方法来管理错误。要处理这种错误,通常有两种方式:数据库备份和数据库快照。我将要讨论的第一种方式是数据库备份(注意:你可以使用SQL Server管理套件执行每种技巧——但是因为我们是开发人员,所以我们将会在Transact-SQL完成这些任务。)

  首先,让我们创建一个完全的数据库备份。

  

  在这个例子中,我为SQL Server默认环境备份了AdventureWorks DW示例数据库到备份文件夹中去。备份是我们最可靠的擦除器。如果你不想要经常备份,试试叫作“数据库快照”的数据库新功能。数据库快照就是第二种方式。它允许我们取出某个时间点的数据库图像。当主数据库(或者源数据库)发生变化的时候,快照数据库对数据库备份之前发生的主要变化进行了记录。从本质上说,数据库快照在拷贝上使用了从被修改页面上传过来的写技术。因此你可以使用快照来进行恢复。要创建数据库快照,我执行如下的T-SQL:

CREATE DATABASE AdventureWorks_DWBEFORECHANGE ON ( NAME = AdventureWorksDW_Data, FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataAdventureWorks_DW.ss'AS SNAPSHOT OF AdventureWorksDW;
GO

  这里灵活的部分就是知道数据文件的名字,在NAME子句中提供出来。你可以通过在SQL Server管理套件的数据库对象浏览器中找到拥有的文件来找到数据库数据文件名(是的,我们耍赖了)。

  现在,我们做一些修改,然后。噢我的天!我们需要回滚!魔法就在这里:

Use Master;
RESTORE DATABASE [AdventureWorksDW] FROM DATABASE_SNAPSHOT = 'AdventureWorks_DWBEFORECHANGE';

  这很酷,但是有些局限。当你使用快照恢复之后,你应该进行一次完全的数据库备份——仅仅是重新执行以上步骤。SQL Server重新构建了日志文件,然后执行一次完整的备份来使它正确。还有,既然数据库快照不能捕捉数据库中的一切内容,只是那些被修改了的部分,你可能需要使用我们前面创建的完全备份,或者用脚本重新输入所与的测试数据。在很多情况下,我们都将数据放在单独的插入数据脚本中,所以我们可以在匆忙间重新产生它们。

  我喜欢使用叫做EMS DB Extract的工具。它在生成向数据库中创建数据插入的脚本方面非常棒。SQL Server确实提供了数据库导入和导出向导,但是我发现它是有限制的,它强