Как я могу обойти проблемы идентичности с Импортированием данных Access в SQL Server - PullRequest
0 голосов
/ 03 мая 2011

Я выясняю, как перенести мои данные из базы данных Access в базу данных SQL Server (2008 R2 Express Edition).Я предполагал, что использование Task-> Import и загрузка данных таким способом было бы правильным способом, но я только что нажал кнопку «Поправка».

Для данных в таблицах, которые я импортирую, заданы ключи автоинкремента, которые ядолжен поддерживать, как я загружаю данные.Это связано с тем, что есть внешние ссылки на значения (не принудительно).Теперь я понял, что мне нужно создать таблицы в SQL Server с установленным параметром IDENTITY, а затем использовать SET IDENTITY_INSERT для ON для таблицы перед импортом.Эксперименты показывают, что сценарий (который я не вижу) завершается неудачей, если это требуется.

Я попытался провести эксперимент, чтобы создать что-то вручную, чтобы отобразить таблицу "Проспект", первая попытка была

* 1006.*

, но это не удалось со следующим

Поставщик OLE DB "Microsoft.Jet.OLEDB.4.0" для связанного сервера "(null)" возвратил сообщение "Unspecified error".Сообщение 7303, уровень 16, состояние 1, строка 1 Невозможно инициализировать объект источника данных поставщика OLE DB "Microsoft.Jet.OLEDB.4.0" для связанного сервера "(null)".

Обнаружив операторы наИнтернет, который предположил, что это может быть преодолено с помощью другого драйвера, я наивно попытался

SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Datasource="C:\Users\Alan\Documents\db\beckendn.mdb";Jet OLEDB:System Database="C:\Users\Alan\Documents\db\Secured.mdw";User ID=Alan;Password=xxxxxx;')...Prospect; 

, но это также не удалось с ...

Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0«для связанного сервера» (null) «возвращено сообщение« Не удалось найти устанавливаемый ISAM. ».Сообщение 7303, уровень 16, состояние 1, строка 1 Не удается инициализировать объект источника данных поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)".

Может кто-нибудь сказать мне, чтоЯ делаю неправильно

[Примечание: во время двойной проверки этого сообщения я попытался снова импортировать таблицу в новую базу данных, но не удалось скопировать запись.Это выглядит как поле Access типа Byte с ненулевым значением (скопированная таблица содержит множество записей с нулем, но ни с одним из ненулевых), так как поле типа smallint вызвало ошибку переполнения]

1 Ответ

1 голос
/ 04 мая 2011

Попробуйте использовать бесплатное программное средство под названием SQL Server Migration Assistant от Microsoft: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5abe098d-c7e1-46c6-994a-09a2856eef0b&displaylang=en

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