Можно ли автоматизировать SSMA для миграции баз данных Access на SQL Server 2005?

StackOverflow https://stackoverflow.com/questions/217964

Вопрос

Мне нужно перенести базы данных Access на SQL Server 2005. Поскольку это необходимо сделать изнутри установки, чтобы установка клиента была прозрачно перенесена на SQL Server 2005, мне интересно, возможно ли автоматизировать инструментарий SSMA из Microsoft.

Это было полезно?

Решение

На самом деле SSMA имел интерфейс командной строки (специальный исполняемый файл консоли в папке установки SSMA). Это было доступно в какое-то время, но я не уверен, пробился ли он до последнего выпуска. Вы должны пропинговать поддержку SSMA о том, какие версии были и какие примеры их использования доступны. Я надеюсь, что это поможет вам.

Другие советы

Насколько мне известно, такая автоматизация недоступна. Но вы все равно можете сгенерировать код SQL, который создает базу данных (тот, который будет начинаться с предложения «CREATE DATABASE»), и запустить его через пользовательский интерфейс на своем сервере SQL.

Чтобы сгенерировать этот код, вы можете

<Ол>
  • Создайте базу данных доступа с помощью инструментария Access
  • Создайте соответствующую "CREATE DATABASE" quot; Код SQL с (например) SQL Server Management Studio (щелкните правой кнопкой мыши базу данных, выберите «сценарий базы данных как CREATE»). EMS SQL Studio предлагает очень хорошую альтернативу SQL Server Management Studio
  • Сохраните код для дальнейшего использования
  • С помощью EMS Studio вы даже можете решить, обновляет ли этот код данные. Но я бы предпочел автоматизировать передачу данных с помощью кода: вы можете, например, просматривать таблицы (в правильном порядке, в зависимости от отношений), открывать наборы записей (один локальный, один SQL) и передавать данные, просматривая поля (вы делаете даже не нужно их называть) с кодом вроде:

    (localRecordset links to local table. can be DAO or ADODB; Adjust code accordingly)
    (sqlRecordset links to the SQL server. can be DAO or ADODB; Adjust code accordingly)
    
    localRecordset.moveFirst
    
    Do while not localRecordset.EOF
        sqlRecordset.addnew
        For each field in localrecordset.fields
            sqlRecordset.fields(field.name).value = field.value
        Next field
        sqlRecordset.update
        localRecordset.moveNext
    Loop
    
    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top