2014-08-27 132 views
1

我已经安装了计算机(SQL2008 EXPRESS),也SQL2008自带的,我们正在使用的特定软件对两个SQL服务器之间复制数据。 我需要做一个服务,运行所有的时间,并在特定的时间从SQL2008 SQL2008 EXPRESS更新不存在的记录..你能提出一种方法来做到这一点? 目前我得到的最好的东西是在Excel文件中制作本地副本,但是这会导致每年365个Excel文件,我不认为这是一个好主意:)C#服务于两个SQL服务器

ps.s.对不起,如果我的英语不好:)

+3

考虑您使用快递,有可能设置复制与SQL Express作为用户:http://technet.microsoft.com/en-US/library/ms165654(v=sql.90).aspx。这将避免您必须自己手动编写服务,而是依赖专门用于在不同数据库之间推送数据的内部SQL Server功能。 – SchmitzIT 2014-08-27 11:00:33

+0

我会看看你建议的链接,但最有可能的,我需要通过代码来做到这一点... – zhv89 2014-08-27 11:27:08

回答

0

您不必手工工艺你自己的软件。有像OpenDbDiff或RedGate dbdiff这样的第三方工具可以做到这一点。这些工具会生成可应用于目标数据库的差异化SQL。

+0

是的,我知道有很多免费的工具,在那里,但对这个项目很特殊,它有手工制作..所以,让我没有选择.. – zhv89 2014-08-27 11:25:06

0

当你提到Excel时,我很困惑。 Excel与将数据从一个SQL数据库移动到另一个数据库有什么关系?

简短的回答是,如果你需要一个C#的服务,然后写一个C#的服务,将数据复制直接从一个数据库到另一个。你试图解决的问题不是很清楚。

说了这么多,并与我有限的对问题的理解,这听起来像你需要的是一个被安排每天运行一次一个SQL作业从一台服务器的数据复制到另一个。由于它听起来像是在不同的实例上,所以您只需在源数据库或目标数据库上设置链接服务器,并将数据推入或拉出到正确的表中。

编辑:

好,因此,如果一个窗口服务要求的场合,这是完全可以接受的。但是,就像我提到的,你应该忘记Excel。如果您没有其他理由使Excel中存在数据,则不希望从SQL-> Excel-> SQL。

下面是创建一个Windows服务的一些信息: Easiest language for creating a Windows service

下面是在C#中访问SQL一个简单的教程:http://www.codeproject.com/Articles/4416/Beginners-guide-to-accessing-SQL-Server-through-C

如果你想要一个更正式的解决方案(阅读:数据访问层) ,我会指向Entity Framework。项目的复杂性可能会成为您是否只想在代码中执行SQL语句与使用完整DAL进行操作的驱动因素。

+0

那么,我说excel,因为这是我能够创造的唯一备份:)此刻我正在考虑出口到excel,然后导入到其他服务器,但这是一个工作太多..我会尽力解释更好.. 我有两台服务器在同一台PC Server1 - 。\ Data,Server2。\ MirrorData,现在我的问题是,我不是非常擅长数据库编程,我不知道使用哪种方法从数据服务器复制(或更新如果存在记录)信息到镜像服务器。我所知道的是它必须是一项服务。市场要求 – zhv89 2014-08-27 12:28:48

+0

在上面添加了一些链接... – 2014-08-27 13:05:46

+0

感谢您的链接,我想我已经明白了,但我不知道如何将数据从。\ Data服务器上的一个表传输到。\ MirrorData中的另一个表我应该先填充一个DataTable然后传输它,还是应该使用其他方法? – zhv89 2014-08-27 14:06:49