Мой продукт использует базу данных SQL Server - у каждого клиента есть собственный развернутый экземпляр в собственной интрасети.В БД около 200 таблиц.Большинство из них являются таблицами конфигурации, которые имеют только несколько строк, но есть несколько таблиц данных транзакций, которые могут иметь несколько миллионов строк.Часто мне нужно устранять проблему с конфигурацией клиента, поэтому мне нужна копия его базы данных для локальной работы в моей системе dev ... Однако она может быть очень большой из-за данных транзакции, что делает отправку очень сложной для клиентамне бэкап для работы.Мне нужен способ резервного копирования / копирования / экспорта всего, КРОМЕ для больших таблиц.
В идеале, большие таблицы действительно принадлежат отдельному каталогу базы данных, так что клиент может создавать резервные копии своих «данных» отдельно от своей «конфигурации».».Тем не менее, у меня нет полномочий вносить такие изменения, поэтому я ищу хороший способ экспортировать или копировать только части конфигурации без необходимости копировать все это.
В настоящее время у меня естьбыстрое и грязное приложение .NET, которое использует адаптер SQL и DataSet для слепого выбора * из всех таблиц, кроме тех, которые я хочу опустить, выгрузите их в файл XML (это функция экспорта моего бедняка).И у меня есть приложение-компаньон, которое я могу использовать локально, чтобы загрузить XML обратно в DataSet, а затем использовать SQLBulkCopy, чтобы загрузить его в мою базу данных разработчика.Мне пришлось сделать несколько трюков, чтобы отключить ограничения и так далее, но я заставил это работать.Это дает мне данные, но не схему .... в идеале я хотел бы получить способ получить схему вместе с ней.Это подход грубой силы, и я считаю, что должен быть более простой путь.Любые предложения по лучшему подходу?
Решение должно быть автоматизировано, поскольку я имею дело с конечными пользователями, которые, как правило, имеют очень небольшую ИТ-поддержку.
(SQL 2005 и выше)