繁体   English   中英

如何使用SSIS复制和覆盖SQL Server 2005中的数据库?

[英]How Do I Copy and Overwrite a Database in SQL Server 2005 with SSIS?

我必须在这里找到一些非常简单的东西!

我的开发环境中有一个名为Project的数据库。 我的测试环境中有一个名为Project_UAT的数据库。

我已经创建了一个SSIS包,成功地将我的数据库从Project复制到了Project_UAT。 我很确定这可以消除大多数权限和配置问题。

现在,我想重新创建包,这次允许它覆盖目标,即Project_UAT。 这只是因为我不时想单击Microsoft SQL Management Studio中的一个按钮,将新数据库模式,数据,用户和所有内容推送到我的测试环境中。 我想覆盖数据。

所以我像以前一样创建包,但是这次我将已存在的数据库名称指定为“目标数据库”,然后选择名为“使用相同名称删除目标服务器上的任何数据库”的单选按钮,然后继续用数据库传输,覆盖现有的数据库文件。“

我点击下一步,它告诉我什么?

“数据库名称已存在于目的地”

好吧,我知道! 我只是告诉你我要覆盖它!

我该如何工作?

不确定我是否遗漏了这一点,但为什么在部署步骤之前不使用任务删除/删除现有数据库?

也许您可以在SSIS包中使用您正在使用的SSIS组件任务。

干杯,约翰

您可以将“执行SQL任务”添加到“控制流”中以删除数据库。 只需将SQLStatement属性设置为

DROP DATABASE Project_UAT

执行此步骤后,Project_UAT数据库的新副本将不必覆盖旧的副本。

我有这个问题,因为我事先删除了数据库。 数据库不在目标文件夹中,但SQL Server 2008仍然认为它在那里。 刷新不起作用。 并且SQL Server不会选择“删除目标服务器上的任何数据库......”它只是抱怨数据库已经存在。

伙计这是一个常识解决方案。 没什么复杂的。

备份要复制的目标数据库并删除目标数据库。

打开复制数据库向导,然后按照步骤操作。

使用分离和附加方法。

当您到达配置目标数据库时,如果存在目标数据库,请使用选项选择具有相同名称的目标服务器上的drop database。

现在它将继续到下一个屏幕。

但这仅在您启动向导之前首先删除目标数据库时才有效。

我可能错过了一些东西,但这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM