Как автоматизировать увеличение с Access на SQL Server? - PullRequest
2 голосов
/ 07 июня 2010

Мне нужно автоматизировать переход с Access (2003) на БД SQL Server (2005 или 2008). Увеличение должно выполняться автоматически как часть процесса сборки.

Мне это нужно, потому что есть 2 версии программного обеспечения, однопользовательский многофункциональный клиент и веб-версия. Access DB используется для одного пользователя, чтобы минимизировать усилия по установке, SQL Server для повышения производительности и масштабирования со многими одновременными пользователями. Access должен быть «ведущей» БД, что означает, что разработчики вносят изменения в БД Access, и они распространяются на сервер SQL в процессе сборки. Произойдет много изменений, поэтому делать это вручную нельзя.

Я новичок в мире Microsoft, поэтому я не знаю подходящих инструментов для этого. Какие инструменты я могу использовать и как? Я знаю, как это сделать (нажав) с помощником по увеличению. Возможно, я могу как-то это автоматизировать?

Заранее спасибо за ваши ответы. Ура, Arne

Ответы [ 2 ]

2 голосов
/ 07 июня 2010

Почему бы не использовать сервер SQL Server для базы данных Access? Затем изменения вносятся только один раз, и все синхронизировано.

0 голосов
/ 07 июня 2010

Проблема здесь в том, что вы пытаетесь работать с двумя разными системами.

Если все изменения дизайна могут быть сделаны в Access, то вы можете просто увеличить это до сервера SQL. Проблема здесь в том, нужно ли вам изменять существующие базы данных sql server? И вам нужно это со временем? Увеличение базы данных доступа приведет к получению новой версии до сервера SQL, но это НЕ ПОМОЖЕТ для существующих баз данных сервера SQL.

Если вам необходимо со временем внести изменения в таблицы в ОБА и в существующих системах, я бы сказал разработчикам доступа, что ВСЕ изменения таблиц ДОЛЖНЫ быть записаны как ddl sql. Затем вы используете ddl, выполненный в Access, чтобы внести изменения. Разработчик ДОЛЖЕН ТОГДА В ЭТОЙ ТОЧКЕ взять тот же самый ddl и запустить его на стороне sql. Это может потребовать небольших изменений. Они исправляют это для запуска на сервере sql. Итак, вы получите два сценария. Один для сервера sql, а другой для доступа. В случае доступа вы можете написать несколько строк кода для чтения и обработки текстового файла 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.

Выше было бы, как я это делаю, и это вполне работоспособно ...

...