Я работаю над настольным приложением, которое должно поддерживать (в настоящее время) серверные части MS Access и SQL Server. Приложение находится в постоянной разработке, и в базу данных часто вносятся изменения, в основном добавление таблиц и представлений для поддержки новых функций (но также и некоторых DROP и ALTER TABLE для добавления новых столбцов).
У меня есть система, которая компилирует DDL в исполняемый файл, проверяет базу данных, чтобы увидеть, есть ли у исполняемого файла какой-либо новый DDL, который должен быть выполнен, и выполняет его. Это отлично работает для одной базы данных.
Моя непосредственная проблема заключается в том, что SQL Server и Access поддерживают совершенно разные имена для типов данных, поэтому оператор CREATE TABLE, который выполняется для Access, не будет выполняться для SQL Server (или, что еще хуже, будет выполняться, но создаст таблицу с разными типами данных).
Есть ли метод, который можно использовать для создания DDL (особенно команд CREATE TABLE), который может выполняться через ADO для обеих этих баз данных без необходимости создавать отдельный DDL для каждого поставщика?