1

我有两个数据库 DB1 和 DB2。现在DB1中有一些与DB2相关的存储过程和视图也是这样的:

SELECT ....
FROM DB1.TableA INNER JOIN DB2.TableB 
.....

现在,因为我必须使用脚本将这两个数据库移动到另一台服务器。我必须确保如果我正在运行 DB2 的脚本,我将首先为那个 DB1 对象运行脚本。我不确定我是否可以一个一个地运行脚本,或者我是否需要准备一个基于依赖关系制作的脚本?

有什么建议吗?

4

1 回答 1

0

如果您想为移动数据生成脚本,我建议您在要移动的数据库上使用任务 -> 生成脚本选项。您可以选择是否编写数据和模式的脚本,或者只是模式,是否编写索引、外键关系等等。快速指南在这里:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema-存储过程函数触发器表视图约束和所有其他数据库对象/

如果我是你,我会下载RedGate SQL Compare的试用版。它有 2 个工具,称为 Schema Compare 和 Data Compare,允许您比较 2 个数据库,并同步它们的模式和数据。这是一个很棒的工具,我们每天都使用它来确保我们的数据库是同步的。

此外,如果您已经像上面所说的那样设置了链接服务器(DB1 引用 DB2),那么当网站上的流量较低时,将两个数据库都脱机可能是值得的。或者,您可以使用 SQL 比较/生成脚本创建 DB1 和 DB2 的副本,然后在将副本移植到新服务器后切换连接字符串以指向副本。这样,切换是即时的,您不必使数据库脱机。

于 2012-11-16T10:13:25.337 回答