我需要在许多服务器实例上创建相同的数据库

时间:2010-10-20 20:41:26

标签: c# sql-server-2008-r2

SQL Server 2008,Visual Studio 08和C#

任务是在多个服务器上创建相同的数据库。如果它只有两个或三个表我会手动完成它,但数据库中有超过50个表..

所以我想为什么不创建备份并在需要的地方恢复备份文件

错误

该文件正在使用中! (虽然备份没有使用,但错误是说实际的数据库正在使用中!是的,我每次想要在其他服务器上恢复备份时都无法关闭服务器!)

那我该怎么做,请提出你的想法

还要注意

无论你说什么都应该可以使用SMO对象实现

谢谢

3 个答案:

答案 0 :(得分:1)

[已修订 - 我需要学会更好地阅读]

我不确定SMO对象,但鉴于SMO可以像其他SQL Server功能一样工作,我们为项目所做的是使用自动部署到我们服务器的数据库项目。这可能需要数据库版(VS 2008)或更高版本... 2010年的溢价。如果你有这个,它绝对是创建数据库项目的一个不错的选择。然后,您只需将其设置为进行模式比较(并且在部署期间,您可能也可以进行数据比较,如果您需要...?)。自动部署最初设置起来比较困难,但是一旦设置好,你就可以单击部署了......我们现在就使用TFS进行部署,但我听说TeamCity有好处:

http://www.jetbrains.com/teamcity/

凯文

答案 1 :(得分:0)

在运行还原之前,您可以运行存储过程“sp_who2”,它将列出当前与数据库的连接。如果您打算覆盖数据库,那么对于每个连接,您都可以发出“kill”以强制关闭连接。

我还记得在Sql管理工作室中使用恢复GUI时,有一些“关闭所有现有连接”选项。

答案 2 :(得分:0)

使用 usp_killDBConnections @DBName =''DbName''

运行还原操作之前。该命令将在还原之前终止所有数据库连接,这在恢复期间很重要。