2011-08-26 118 views
1

您好我有这种情况:合并两个SQL Server数据库

  • SQL服务器1(生产)用OBJ A,B,C
  • SQL服务器2(发展)与物体A,B,C, D,E,F,G,H,I

我想知道如何容纳SQL Server 1(A,B,C)的每个对象,但同时我想添加每个来自SQL Server 2的新对象。在SQL Server 2中,A,B,C具有相同的模式,但假数据尊重SQL Server 1中的相同对象,因此我无法对SQL Serve进行完整备份R 2和它在SQL Server 1.

两个服务器都在运行SQL Server还原2008

我知道有明显智能程序要做到这一点,但我在SQL Server管理小经历让我瞎了!

在此先感谢您的帮助!

+0

什么版本的SQL 2008,标准,表达等?你看过复制或链接服务器 –

+0

快速发展,我认为生产的标准,我想我会导入所有生产数据在我的开发数据库,​​然后我会做一个完整的备份我的数据库,所以我可以然后导入它在生产服务器。这样做,我只会丢失将在生产服务器上写入的数据。 – JasonMenny

回答

3

你需要一些好工具!像:

  • 红门SQL Compare帮助你比较和同步你的数据库结构(如数据库对象,如表,视图,特效,约束等)

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

0

您可以使用不同的模式,对两个数据库做:

CREATE SCHEMA something; 
GO 

然后你就可以在该模式移动“复制”对象在一边:

ALTER SCHEMA something TRANSFER dbo.A; 
... 

然后,你可以使用移动something.objects转移到其他数据库像SQL比较等工具。你将有两个对象称为A,但他们将在不同的模式。自然,你的代码必须引用正确的模式。

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

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

0

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

这个脚本可以连接到第一个数据并将数据导入到第二个数据中

+0

我知道,但我想知道是否有更好的方法来做到这一点。编写一些代码将数据导入现代和复杂的数据库中,因为SQL Server不太舒服和有趣。 – JasonMenny