У меня есть база данных доступа, которая в конечном итоге будет заменена базой данных SQL с веб-интерфейсом. Веб-приложение в настоящее время находится в разработке. Я скопировал базу данных Access в SQL с помощью помощника по миграции, к сожалению, мы не можем просто связать интерфейс Access с базой данных SQL и использовать только базу данных SQL, они должны оставаться отдельными, пока мы не сможем переключиться с одного на другой. Поэтому в базу данных Access добавляются данные, которые мне нужно регулярно копировать в базу данных SQL.
Есть ли сценарий или простой процесс, который копирует только данные из таблиц Access в таблицы SQL, которые я могу запускать как запланированную задачу один раз в неделю?
Помимо параметра SSIS, вы можете напрямую подключиться к базе данных доступа в SQL Server, как если бы эта база данных была любой другой связанной базой данных. Вы можете использовать это для копирования данных между собой с помощью задачи, запланированной агентом SQL Server или каким-либо другим средством выполнения задач. Например, простое задание «полностью обновить одну таблицу из базы данных Access» может выглядеть так:
EXEC sp_addlinkedserver
@server = 'mdb',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'c:\path\to\db\db.mdb'
GO
DELETE table_to_refresh
INSERT table_to_refresh SELECT * FROM mdb...table_to_refresh_from
GO
EXEC sp_dropserver 'mdb', NULL
GO
Я использовал это как быстрый способ копирования данных из базы данных Access, когда другие инструменты, такие как SSIS, были недоступны. Вы можете использовать таблицы (и, я полагаю, представления) в БД, как и любые другие, так что вы не ограничены простыми запросами «выбрать все», как в примере выше.
Не то чтобы мы с вами что-то говорили по этому поводу, но я бы настаивал на переводе приложения Access на SQL Server. Затем разработайте только функциональные возможности, необходимые для доступа в Интернет, которых может быть не так много в зависимости от требований. Оставьте в приложении Access как можно больше функций просто потому, что это лучший инструмент RAD.
Вы можете использовать пакеты SSIS и сохранять их на диск. Видеть http://msdn.microsoft.com/en-us/library/ms141209.aspx в качестве отправной точки, а также проверьте http://www.codeproject.com/KB/aspnet/Schedule__Run__SSIS__DTS.aspx
Еще один простой способ импортировать данные из источника MS Access - импортировать данные напрямую через студию управления. Щелкните базу данных правой кнопкой мыши> Задачи> Импорт.
Я обнаружил, что это сработало намного проще, чем использование SSIS или инструмента миграции.
Доступ к MSSQL может быть полезен: http://www.bullzip.com/products/a2s/info.php