Импорт из MS SQL Server в MS Access через ODBC потерял все индексы - PullRequest
2 голосов
/ 09 июля 2019

Я использую SQL Server 2014/2017 (любая версия выражения), я пытался переместить данные из базы данных SQL Server в MS Access по некоторым причинам, но с чем я сталкиваюсь сейчас, все индексы, созданные в каждом поле в каждой таблице в SQL Server не переносятся в MS Access (2016).

В настоящее время обходной путь: я должен перейти к таблицам, которые мне нужны, чтобы установить flag: index как пример:

enter image description here

Есть ли какое-либо решение, которое может сохранить все индексы от SQL Server до Access?

1 Ответ

2 голосов
/ 12 июля 2019

Вы можете по крайней мере заставить PK и индексы выходить с сервера SQL.

Есть два способа сделать это.

Из графического интерфейса?

Просто создайте ссылку на соответствующую таблицу (создайте связанную таблицу с сервером sql).

Затем на панели навигации просто щелкните правой кнопкой мыши по связанной таблице и выберите «преобразовать в локальную таблицу».

Таким образом, вышеприведенное сохранит PK (и индексы). И для любого другого столбца, имеющего индекс, вы обнаружите, что Access также сохраняет (создает) локальный индекс для вас.

Если вы используете код?

Затем сначала создайте связанную таблицу.

Затем выполните скрытое отображение в локальной таблице.

Например, этот код:

Dim strCon        As String
strCon = CurrentDb.TableDefs("dbo_TimeTest1").Connect

DoCmd.TransferDatabase acLink, "ODBC Database", strCon, acTable, _
           "dbo.tblbooking", "tblBookingLocal2", False, True
DoCmd.SelectObject acTable, "tblBookingLocal2", True
DoCmd.RunCommand acCmdConvertLinkedTableToLocal

Выше я просто собрал «известную» и существующую строку подключения из другой связанной таблицы в ту же базу данных SQL.

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