4

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

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

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

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

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

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

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

好吧,我知道!我刚刚告诉你我想覆盖它!

我该如何进行这项工作?

4

4 回答 4

2

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

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

干杯,约翰

于 2009-02-20T19:37:27.807 回答
2

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

DROP DATABASE Project_UAT

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

于 2009-02-20T20:09:27.233 回答
1

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

于 2010-07-26T17:12:47.570 回答
0

伙计们,这是一个常识性的解决方案。很多复杂性都是徒劳的。

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

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

使用分离和附加方法。

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

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

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

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

于 2009-07-23T12:06:23.053 回答