Объедините несколько похожих баз данных MS-Access в одну базу данных SQL - PullRequest
0 голосов
/ 15 марта 2011

У меня около 20 баз данных, по одной на каждый год с 1990 по 2010 год.Каждая база данных имеет почти одинаковые таблицы, но уникальные данные в этих таблицах.(Есть несколько уникальных таблиц, но они не очень важны.)

Я использую SQL Server Migration Assistant для Access, но пока я могу только выяснить, как перенести одну базу данных доступа в одну базу данных SQL,Возможно ли:базы данных (после того, как я импортировал каждую из них), добавляя вместе все похожие таблицы

В каждой базе данных есть несколько сотен таблиц, поэтому я стараюсь избегать ручного решения.Спасибо!

Ответы [ 3 ]

1 голос
/ 15 марта 2011

Если бы вы знали, что ваша структура данных была идентична в каждой БД, вы могли бы потенциально использовать какой-нибудь изящный Динамический SQL и sp_msforeachtable для объединения каждой таблицы, если они имеют одинаковое имя в каждой из БД.

Я думаю, что-то вроде:

DECLARE @SQL Varchar(max)

SET @SQL ='
SELECT *
INTO MergedDb.?
FROM DB1.?
UNION ALL
SELECT *
FROM DB2.?
UNION ALL
SELECT *
FROM DB3.?
...'

exec sp_MSforeachtable @SQL

Это будет НЕ надлежащим образом обрабатывать конфликты типов данных, и если у вас есть какие-либо значения идентичности, это не будет работать вообще.

1 голос
/ 15 марта 2011

Сделайте правильный нормализованный дизайн вашей глобальной базы данных. Затем импортируйте свои 20 MDB в 20 баз данных SQL и консолидируйте вручную или по сценарию, или их комбинацию. Я думаю, что это будет быстрее от руки.

1 голос
/ 15 марта 2011

вам придется делать каждую базу данных вручную, но вы можете попробовать использовать мастер импорта данных сервера SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...