Я пытаюсь сделать большую массовую вставку в базу данных SqlCe (версия 3.5, о, и с использованием C # 3). Я пробовал различные способы сделать это (вставка адаптера таблицы, подготовленный параметризованный запрос, вставка sqlceresultset и т. Д.). Самое быстрое время, как я читал на многих сайтах, это использование объекта SqlCeResultSet в режиме прямой таблицы.
Я хочу еще больше ускорить это, отключив все индексы на необходимых таблицах перед выполнением вставки (затем я перестрою их позже). У меня проблема с тем, чтобы оператор ALTER INDEX работал (никогда не использовал его раньше, поэтому я уверен, что пропускаю что-то простое).
По сути, я создал SqlCeCommandObject и настроил оператор alter следующим образом (объект подключения уже настроен и открыт и т. Д.):
.
.
.
SqlCeCommand disableIndexCommand = Connection.CreateCommand();
disableIndexCommand.CommandText = "ALTER INDEX ALL ON ItemMaster DISABLE";
disableIndexCommand.ExecuteNonQuery();
.
.
.
Когда я пытаюсь запустить этот код, я получаю следующую ошибку:
Произошла ошибка при разборе запроса.
[Номер строки токена = 1, строка токена
смещение = 7, токен по ошибке = INDEX]
Мне кажется, что он не понимает ключевое слово INDEX в выражении alter. Разве это не поддерживается в SqlCe?
Спасибо
[ОБНОВЛЕНИЕ] - я пробовал другие операторы DDL (например, DROP INDEX, CREATE INDEX), и я не могу заставить их работать? Я искал повсюду, пытаясь найти список того, что есть и что не поддерживается в SSCE, насколько это возможно для операторов DDL. Неудачно. Кто-нибудь знает какие-либо хорошие ресурсы для этого. Документация MS для sqlce compact версии 3.5 была совершенно бесполезной, я должен сказать ...