Как я могу изменить схему для БД доступа в C # - PullRequest
2 голосов
/ 10 марта 2010

У меня есть проект, цель которого - объединить несколько БД Access в одну базу данных SQL Server. Некоторые из записей в БД Access имеют автономный номер и не будут уникальными для всех БД.

В настоящее время мы работаем над тем, чтобы программно изменить эти поля чисел. Настройка и разрешение доступа для каскадного изменения этих данных перед добавлением всех этих таблиц на сервер SQL.

Мне известно о getSchema () для доступа, но можем ли мы изменить схему, чтобы удалить автонумерацию из поля?

В противном случае, есть ли у кого-нибудь блестящие идеи о том, как выполнить нашу задачу? Или сделали что-нибудь подобное?

Привет

Ответы [ 2 ]

2 голосов
/ 11 марта 2010

Раз уж вы целуетесь с MS-Access, почему бы не отредактировать таблицы вручную (щелкнуть правой кнопкой мыши по соответствующим таблицам и оформить)? Это может быть быстрее, чем писать код, чтобы сделать то же самое.

Если вам действительно нужен программный способ сделать что-то, ADOX был довольно зрелым API для управления объектами схемы, и он был наиболее полным набором функций для MS-Access. Это COM, но вы можете использовать COM-взаимодействие.

На этой странице скрыты некоторые примеры использования ADOX для добавления столбцов. http://www.codeguru.com/cpp/data/mfc_database/ado/article.php/c4343#_Toc1461080

2 голосов
/ 10 марта 2010

Вы можете использовать DDL:

ALTER TABLE Table1 ALTER COLUMN id long

Редактировать комментарий

Вам нужно удалить связь, прежде чем вы измените тип поля, но первичный индекс в порядке:

ALTER TABLE Table2 DROP CONSTRAINT Table1Table2 

Ограничение, вероятно, будет называться как-то в этих строках, но вы можете использовать ADOSchemas, чтобы получить имена ограничений (отношений).

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