Pregunta

Necesito migrar las bases de datos de Access a SQL Server 2005. Dado que esto debe hacerse desde una configuración para que la instalación de los clientes se migre de manera transparente a SQL Server 2005, me pregunto si es posible automatizar el kit de herramientas SSMA desde Microsoft.

¿Fue útil?

Solución

En realidad, SSMA tenía una interfaz de línea de comandos (consola especial ejecutable en la carpeta de instalación de SSMA). Estaba disponible en algún momento, pero no estoy seguro de si llegó a la última versión. Debería hacer ping al soporte SSMA sobre qué versiones lo tenían y qué ejemplos de sus usos están disponibles. Espero que esto te ayude.

Otros consejos

Que yo sepa, dicha automatización no está disponible. Pero aún es posible que genere el código SQL que crea la base de datos (la que comenzará con la oración "CREAR BASE DE DATOS") y la inicie a través de su interfaz de usuario en su servidor SQL.

Para generar este código, puedes

  1. Cree la base de datos de acceso con el kit de herramientas de Access
  2. Generar la correspondiente "CREAR BASE DE DATOS" Código SQL con (por ejemplo) SQL Server Management Studio (haga clic con el botón derecho en la base de datos, elija " base de datos de script como CREATE ". EMS SQL Studio ofrece una muy buena alternativa a SQL Server Management Studio
  3. Guarde el código para su uso posterior

Con EMS Studio, incluso puede decidir si este código también actualiza los datos. Pero preferiría automatizar la transferencia de datos a través del código: por ejemplo, puede examinar las tablas (en el orden correcto, según las relaciones), abrir conjuntos de registros (uno local, uno SQL) y transferir datos explorando los campos (puede ni siquiera es necesario nombrarlos) con 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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top