Как автоматизировать увеличение от Access до SQL Server?
Мне нужно автоматизировать переход с Access (2003) на БД SQL Server (2005 или 2008). Увеличение должно выполняться автоматически как часть процесса сборки.
Мне это нужно, потому что есть 2 версии программного обеспечения, однопользовательский многофункциональный клиент и веб-версия. Access DB используется для одного пользователя, чтобы минимизировать усилия по установке, SQL Server для повышения производительности и масштабирования со многими одновременными пользователями. Access должен быть "ведущей" БД, что означает, что разработчики вносят изменения в БД Access, и они распространяются на сервер SQL в процессе сборки. Произойдет много изменений, поэтому делать это вручную нельзя.
Я новичок в мире Microsoft, поэтому я не знаю подходящих инструментов для этого. Какие инструменты я могу использовать и как? Я знаю, как это сделать (нажав) с помощником по увеличению. Возможно, я могу как-то это автоматизировать?
Заранее спасибо за ваши ответы. Ура, Арне
2 ответа
Проблема здесь в том, что вы пытаетесь сделать версинг с двумя разными системами.
Если все изменения дизайна могут быть сделаны в Access, то вы можете просто увеличить его до сервера SQL. Проблема здесь в том, нужно ли вам изменять существующие базы данных сервера sql? И вам нужно это со временем? Увеличение базы данных доступа приведет к получению новой версии сервера sql, но это НЕ ПОМОЖЕТ для существующих баз данных сервера sql.
Если вам нужно со временем внести изменения в таблицы в ОБА и в существующих системах, я бы сказал разработчикам доступа, что ВСЕ изменения таблиц ДОЛЖНЫ быть записаны как ddl sql. Затем вы используете ddl, выполненный в Access, чтобы внести изменения. Разработчик ДОЛЖЕН ТОГДА В ЭТОЙ ТОЧКЕ взять тот же самый ddl и запустить его на стороне sql. Это может потребовать небольших изменений. Они исправляют это для запуска на сервере sql. Итак, вы получите два сценария. Один для SQL Server и один для доступа. В случае доступа вы можете написать несколько строк кода для чтения и обработки текстового файла ddl. (этот же код можно использовать для всех сценариев).
Таким образом, вы создаете эквивалентный набор изменений для каждого обновления. Таким образом, просто НИКОГДА не допускайте внесения изменений непосредственно в таблицы доступа. Если вы разрешаете вносить изменения в конструктор таблиц, то у вас большие проблемы, так как вы не знаете, какие изменения необходимо перенести на сервер sql.
Тем не менее, в качестве лучшего рекомендованного подхода я бы предложил, чтобы изменения в дизайне таблиц выполнялись ПЕРВЫМИ на сервере SQL. Причина в том, что дизайнер таблиц в инструментах sql visual studio позволяет вносить только что внесенные изменения в буфер обмена (простой щелчок правой кнопкой мыши). Другая причина в том, что конструктор таблиц ОЧЕНЬ похож на конструктор доступа. Таким образом, это легко использовать даже разработчикам с небольшим опытом работы с SQL Server. Таким образом, этот простой щелчок правой кнопкой мыши "изменения скрипта в буфере обмена" создаст скрипт необходимости изменения для сервера SQL (они сохранят его в файл для сервера SQL). Затем они берут ddl и запускают его на стороне доступа. Причиной этого является то, что для ddl могут потребоваться некоторые небольшие моды для доступа (но им не нужно было писать оператор ddl). Таким образом, это означает, что для них пишут ddl. Это означает, что вы знаете, что sql server ddl правильный. Затем они просто принимают этот ddl и снова используют для изменения таблицы доступа. Для доступа к ddl могут потребоваться небольшие изменения, но это прекрасно, потому что им нужно изменить таблицу, а затем запустить и исправить ее, пока не будет сделано простое изменение таблицы. Таким образом, этот сценарий ddl будет затем сохранен для обновления доступа в файл также. Скрипту ddl могут потребоваться небольшие модификации для доступа, поэтому я думаю, что этот подход лучше. Пока это будет изменено / исправлено, пока они идут, у вас все будет хорошо.
Таким образом, за период изменений вы получите два сценария, которые синхронизируют изменения для обеих систем.
Если вам не нужны изменения в существующих sql и доступ к базам данных, просто дайте возможность людям с доступом, а затем просто увеличьте размер всей базы данных до сервера sql за один раз, и все готово.
Я не могу много думать о каком-либо другом подходе между этими двумя крайностями.
Пользователи могут внести изменения в доступ, а затем перейти на сервер SQL Server, чтобы внести изменения в дизайн таблицы SQL, а затем сохранить сценарий изменения сервера SQL. Однако это не даст вам сценарий изменения для стороны доступа. Если сценарий изменения НЕ нужен для стороны доступа, это будет работать очень хорошо, так как вы получите сценарий изменения сервера SQL.
Выше было бы, как я об этом, и это вполне работоспособно...
Почему бы не использовать сервер SQL Server для базы данных Access? Затем изменения вносятся только один раз, и все синхронизировано.