我有一个通用的办公室数据库和一堆笔记本电脑安装的相同结构的SQL Server Express数据库。在这些数据库中,我记录信息,该信息由特定事件的id分区。员工占用的笔记本电脑主要用于服务一个事件(有时最多2-3个),显然我在所有表中都有一个eventId
列,除了数据库中的字典(尽管很少超过3)笔记本电脑数据库)。
当员工回到办公室时,他们需要将最后的事件数据备份到办公室SQL Server,其中eventId
可以是一百或一千等,这是所有过去事件的历史。
我的问题的另一个原因是我希望能够将基于eventId
的现有数据库选择性副本发送到不同的服务器以进行开发(实际上从本地到SQL Azure)。
在服务器之间移动此类数据的有效方法是什么?我有大约50-100个表,其中包含键和引用。
我们目前正在做什么 - 选择性地将数据复制到源服务器上的新干净数据库(只有复制所需的数据);备份这个新的数据库;在目标服务器上恢复它;使用带有dbname作为参数的动态T-SQL在数据库之间进行数据复制。我不喜欢的是动态T-Sql,直到运行时都没有语法检查。
在开发C#程序的帮助下将数据加载到RAM中(但可能是资源消耗太多,只要数据可能很大)并将其转移到以C#程序作为代理的新服务器上RAM作为中间存储。具有挑战性且在某些情况下不可能(数据太多)。
我开始研究SSIS,但似乎使用SSIS的一般建议是在固定环境下进行复制("内部")。我们不向大量客户提供软件,但肯定不止一个,我们需要动态地从某个地方传递连接信息,只要我们无法访问所有客户来准备设置对于他们的位置。
还有其他建议吗?
任何帮助表示赞赏!
答案 0 :(得分:0)
这是我推荐的。
创建SSIS包。将它安装在Laptops SQL Server Express上。
您可以使用配置文件来选择要导出的事件ID。
您还可以在配置文件中保留所有连接信息。对于那些非内部客户,您可以在导出之间删除配置文件。
这将是我的建议。