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

MSSQL
SQL Server--全文本检索的应用(一)
SQL 2005的SSIS与Oracle的迁移性能
SQL优化实例:从运行30分钟到运行只要30秒
无法在SQL Server2005 Manger Studio 中录入中文的问题
SQL Artisan多表查询和统计
SQL Server数据库开发人员在应聘时经常被问到哪些问题
一个完整的SQL SERVER数据库全文索引的示例
SQL Server安全之加密术和SQL注入攻击
如何对SQL Server中的tempdb“减肥”
SQL Server 2005升级的十个步骤
如何在SQL Server开发中融入极限编程技术
SQL Server应用程序高级SQL注入(下)
SQL Server应用程序高级SQL注入(上)
SQL Server连接中的常见错误
IIS中SQL Server数据库的安全问题
SQL Server 2005区域配置和安全工具
保护 SQL Server 的十个步骤
如何利用SQL Server 2000的复制选项
SQL Server 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
SQL SERVER 2005同步复制技术的应用

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 70 ::
收藏到网摘: 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确实提供了数据库导入和导出向导,但是我发现它是有限制的,它强