在SQL Server之间传输数据的最佳方法

时间:2014-09-04 15:25:56

标签: c# sql sql-server ssis data-transfer

我有一个通用的办公室数据库和一堆笔记本电脑安装的相同结构的SQL Server Express数据库。在这些数据库中,我记录信息,该信息由特定事件的id分区。员工占用的笔记本电脑主要用于服务一个事件(有时最多2-3个),显然我在所有表中都有一个eventId列,除了数据库中的字典(尽管很少超过3)笔记本电脑数据库)。

当员工回到办公室时,他们需要将最后的事件数据备份到办公室SQL Server,其中eventId可以是一百或一千等,这是所有过去事件的历史。

我的问题的另一个原因是我希望能够将基于eventId的现有数据库选择性副本发送到不同的服务器以进行开发(实际上从本地到SQL Azure)。

在服务器之间移动此类数据的有效方法是什么?我有大约50-100个表,其中包含键和引用。

  1. 我们目前正在做什么 - 选择性地将数据复制到源服务器上的新干净数据库(只有复制所需的数据);备份这个新的数据库;在目标服务器上恢复它;使用带有dbname作为参数的动态T-SQL在数据库之间进行数据复制。我不喜欢的是动态T-Sql,直到运行时都没有语法检查。

  2. 在开发C#程序的帮助下将数据加载到RAM中(但可能是资源消耗太多,只要数据可能很大)并将其转移到以C#程序作为代理的新服务器上RAM作为中间存储。具有挑战性且在某些情况下不可能(数据太多)。

  3. 我开始研究SSIS,但似乎使用SSIS的一般建议是在固定环境下进行复制("内部")。我们不向大量客户提供软件,但肯定不止一个,我们需要动态地从某个地方传递连接信息,只要我们无法访问所有客户来准备设置对于他们的位置。

  4. 还有其他建议吗?

  5. 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

这是我推荐的。

创建SSIS包。将它安装在Laptops SQL Server Express上。

您可以使用配置文件来选择要导出的事件ID。

您还可以在配置文件中保留所有连接信息。对于那些非内部客户,您可以在导出之间删除配置文件。

这将是我的建议。