我有两个数据库 DB1 和 DB2。现在DB1中有一些与DB2相关的存储过程和视图也是这样的:
SELECT ....
FROM DB1.TableA INNER JOIN DB2.TableB
.....
现在,因为我必须使用脚本将这两个数据库移动到另一台服务器。我必须确保如果我正在运行 DB2 的脚本,我将首先为那个 DB1 对象运行脚本。我不确定我是否可以一个一个地运行脚本,或者我是否需要准备一个基于依赖关系制作的脚本?
有什么建议吗?
我有两个数据库 DB1 和 DB2。现在DB1中有一些与DB2相关的存储过程和视图也是这样的:
SELECT ....
FROM DB1.TableA INNER JOIN DB2.TableB
.....
现在,因为我必须使用脚本将这两个数据库移动到另一台服务器。我必须确保如果我正在运行 DB2 的脚本,我将首先为那个 DB1 对象运行脚本。我不确定我是否可以一个一个地运行脚本,或者我是否需要准备一个基于依赖关系制作的脚本?
有什么建议吗?
如果您想为移动数据生成脚本,我建议您在要移动的数据库上使用任务 -> 生成脚本选项。您可以选择是否编写数据和模式的脚本,或者只是模式,是否编写索引、外键关系等等。快速指南在这里:
如果我是你,我会下载RedGate SQL Compare的试用版。它有 2 个工具,称为 Schema Compare 和 Data Compare,允许您比较 2 个数据库,并同步它们的模式和数据。这是一个很棒的工具,我们每天都使用它来确保我们的数据库是同步的。
此外,如果您已经像上面所说的那样设置了链接服务器(DB1 引用 DB2),那么当网站上的流量较低时,将两个数据库都脱机可能是值得的。或者,您可以使用 SQL 比较/生成脚本创建 DB1 和 DB2 的副本,然后在将副本移植到新服务器后切换连接字符串以指向副本。这样,切换是即时的,您不必使数据库脱机。