Domanda

Devo migrare i database di Access su SQL Server 2005. Dato che questo deve essere fatto all'interno di un'installazione in modo che l'installazione dei clienti venga migrata in modo trasparente su SQL Server 2005, mi chiedo se sia possibile automatizzare il toolkit SSMA da Microsoft.

È stato utile?

Soluzione

In realtà SSMA aveva un'interfaccia da riga di comando (console speciale eseguibile nella cartella di installazione di SSMA). Era disponibile da qualche tempo ma non sono sicuro che sia arrivato all'ultima versione. È necessario eseguire il ping del supporto SSMA su quali versioni avevano e quali esempi dei suoi utilizzi sono disponibili. Spero che questo ti possa aiutare.

Altri suggerimenti

Per quanto ne so, tale automazione non è disponibile. Tuttavia, è ancora possibile generare il codice SQL che crea il database (quello che inizierà con la frase "CREATE DATABASE") e avviarlo tramite l'interfaccia utente sul server SQL.

Per generare questo codice, puoi

  1. Crea il database di accesso con Access toolkit
  2. Genera il corrispondente " CREATE DATABASE " Codice SQL con (ad esempio) SQL Server Management Studio (fai clic con il pulsante destro del mouse sul database, scegli " database degli script come CREATE " EMS SQL Studio offre un'ottima alternativa a SQL Server Management Studio
  3. Salva il codice per un ulteriore utilizzo

Con EMS Studio, puoi anche decidere se questo codice aggiorna anche i dati. Ma preferirei automatizzare il trasferimento di dati attraverso il codice: ad esempio è possibile sfogliare le tabelle (nell'ordine giusto, a seconda delle relazioni), aprire recordset (uno locale, uno SQL) e trasferire i dati sfogliando i campi (si non è nemmeno necessario nominarli) con un codice del tipo:

(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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top