合并两个SQL Server数据库

时间:2011-08-26 14:54:39

标签: sql-server database sql-server-2008 ssms

嗨,我有这种情况:

  • 使用obj A,B,C
  • 的SQL Server 1(生产)
  • SQL Server 2(开发),包含对象A,B,C,D,E,F,G,H,I。

我想知道如何保存SQL Server 1(A,B,C)的每个对象,但同时我想从SQL Server 2添加每个新对象。在SQL Server 2中{{1}具有相同的模式,但假数据尊重SQL Server 1中的相同对象,因此我无法对SQL Server 2进行完整备份并在SQL Server 1中将其还原。

两台服务器都运行SQL Server 2008。

我知道显然有一个聪明的程序可以做到这一点,但我在SQL Server管理方面的小经验让我失明了!

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

你需要一些好工具!像:

  • Red-Gate SQL Compare可帮助您比较和同步数据库的结构(例如数据库对象,如表,视图,过程,约束等)。

  • 红门SQL Data Compare可帮助您比较和同步表格中的数据,例如在查找和系统表中,甚至是实际的数据表

答案 1 :(得分:0)

您可以使用不同的模式,例如两个数据库上都有:

CREATE SCHEMA something;
GO

然后,您可以在一侧移动该模式中的“重复”对象:

ALTER SCHEMA something TRANSFER dbo.A;
...

然后你可以使用SQL Compare等工具将something.objects移动到另一个数据库。你将有两个名为A的对象,但它们将位于不同的模式中。您的代码必须自然地引用正确的模式。

但为什么他们必须在同一个数据库中呢?您可以将它们保存为单独的数据库,并在一个中使用同义词指向另一个中的对象,因此所有内容都“看起来”是本地的。如果它们在同一模式和同一数据库中,您打算如何从A查询?

你能准确解释一下你想要实现的目标吗?您是否尝试使您的生产数据库向后兼容,以便您可以在不破坏现有应用程序的情况下推送您的开发人员更改?我认为将测试应用程序指向不同的数据库更加清晰,然后将生产数据库完全更新(不像Frankenstein)。

答案 2 :(得分:0)

您可以制作一个简单的PHP脚本来运行。

此脚本应连接到第一个数据并将数据导入第二个数据

相关问题