我的产品使用SQL Server数据库-
每个客户端在自己的Intranet上都有自己的部署实例。该数据库大约有200个表。它们中的大多数是只有几行的配置表,但是有几个事务数据表可能有几百万行。通常,我需要对客户的配置问题进行故障排除,因此我需要他们的数据库的副本才能在我的开发系统上本地使用…但是由于交易数据的原因,该副本可能很大,这使得客户很难发送我可以备份。我需要一种方法来备份/复制/导出大表以外的所有内容。
理想情况下,大表实际上属于一个单独的数据库目录,以便客户可以将其“数据”与“配置”分开备份。但是,我无权进行这种类型的更改,因此我正在寻找一种导出或复制配置部分而不必复制整个内容的好方法。
当前,我有一个快速且肮脏的.NET应用程序,该应用程序使用SQL适配器和数据集盲目地从所有表中选择*,而不是要忽略的表,然后将其转储到XML文件中(这是我穷人的导出功能)。我有一个配套应用程序,可以在本地使用该XML将XML重新加载到DataSet中,然后使用SQLBulkCopy将其加载到我的dev数据库中。我不得不做一些技巧来禁用约束等等,但是我做到了。这可以获取数据,但不能获取模式。…理想情况下,我希望获得一种与模式一起获取数据的方法。这是一种蛮力方法,我相信必须有一个更简单的方法。对更好的方法有什么建议吗?
由于我要与通常很少获得IT支持的最终用户打交道,因此该解决方案需要实现自动化。
(SQL 2005及更高版本)