Pergunta

Eu preciso migrar bancos de dados Access para o SQL Server 2005. Uma vez que isso precisa ser feito a partir de uma configuração de modo a que a instalação de um dos clientes é transparente migrado para o SQL Server 2005, gostaria de saber se é possível automatizar o kit de ferramentas de SSMA de Microsoft.

Foi útil?

Solução

Na verdade SSMA teve de linha de comando de interface (executável consola especial na pasta de instalação SSMA). Estava disponível em algum momento, mas eu não tenho certeza se ele fez o seu caminho para a última versão. Você deve executar ping apoio SSMA sobre o que as versões tinham e que exemplos de seus usos estão disponíveis. Espero que isso irá ajudá-lo.

Outras dicas

Para meu próprio conhecimento, tal automação não está disponível. Mas ainda é possível para você gerar o código SQL que cria o banco de dados (o que começará com a frase "CREATE DATABASE") e lançá-lo através de sua interface de usuário em seu servidor SQL.

Para gerar o código, você pode

  1. Criar o banco de dados de acesso com o acesso kit de ferramentas
  2. Gerar o código SQL corresponing "CREATE DATABASE" com (por exemplo) SQL Server Management Studio (clique com o botão direito no banco de dados, escolha "banco de dados de script como CRIAR". EMS SQL Studio oferece uma alternativa muito agradável para o SQL Server Management Studio
  3. Salvar o código para posterior utilização

Com EMS Studio, você pode até mesmo decidir se este código também atualiza os dados. Mas eu prefiro de automatizar a transferência de dados através de código: você pode, por exemplo, procura as tabelas (na ordem certa, dependendo relacionamentos), de registros abertos (um local, um SQL), e transferir dados por visitar os campos (você não precisa mesmo de nomeá-los) com um código como:

(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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top