«

»

ago
17

Da Ms Access a Sql Server – Parte 2

In questa seconda parte esamineremo i vari metodi per trasferire Database esistenti di Ms Access a Sql Sever. Il nostro scopo è infatti illustrare le procedure corrette per migrare un’applicazione che utilizza archivi in formato Ms Access a Sql Server. Ricordo che in questa prima fase supporremo di disporre di Ms Access 2003 SP3 e di Sql Server 2005 installato su un Server di Rete. L’archivio di esempio sarà il Database di NewS Pro, un gestionale per la PMI scritto in Ms Access 2003.


Creare l’utente su Sql Server

Come abbiamo già scritto, useremo, per l’accesso al server la modalità mista: questo ci permetterà di avere un unico utente da utilizzare esclusivamente per NewS Pro. Tutti gli esempi che seguono useranno l’interfaccia grafica di Sql Server Management Studio, il tool di gestione gratuito di Microsoft. Per prima cosa assicuriamoci di aver impostato il Server con la modalità di autenticazione mista. Si seleziona il Server e si visualizzano le proprietà:

Autenticazione del Server 

Poi si crea un utente di nome news e password newspwd (o quella che volete voi), e si assegnano all’utente i diritti desiderati. Nel nostro esempio per semplicità assegneremo a news il ruolo di sys admin (amministratore):

Diritti Utente

Bene, ora siamo pronti a trasferire i nostri dati a Sql Server.

Metodo uno: esportazione da Ms Access

Il metodo più semplice consiste nell’utilizzare la routine di esportazione inclusa in Ms Access 2003. Si apre il database Access, si seleziona dal menu Strumenti –> Utilità Database –> Upsize Guidato: si apre un Wizard che con pochi click risparmia un bel po’ di lavoro. Si sceglie ovviamente di creare un nuovo Database. Nella finestra successiva:

Selezione del Server

si seleziona il Server dalla casella a discesa, si sceglie di NON utilizzare la connessione trusted e si immettono le credenziali dell’utente news e si assegna un nome al nuovo Database Sql. Nella finestra successiva si selezionano le tabelle da esportare (normalmente tutte), poi le modalità di esportazione (le scelte consigliate vanno bene) e con un paio di click avremo il nostro Database Sql. Semplicissimo ed efficace. Si noti che:

  • il wizard aggiunge il suffisso dbo. al nome delle tabelle (quindi la tabella clienti diventa dbo.clienti) e bisognerà tenerne conto;
  • oltre ai dati ed alla struttura delle tabelle, vengono trasferiti anche gli indici, le chiavi primarie e le relazioni: questo risparmia una montagna di lavoro, ma bisogna, come vedremo, stare attenti alle conseguenze;
  • i tipi di dati, tra Access e Sql server, sono leggermente diversi e questo in alcuni casi può portare dei problemi.

Metodo due: uso di SSMA

Da qualche tempo Microsoft rilascia delle utility gratuite per la migrazione dei dati verso Sql Server. Esistono per Oracle, per MySql ed anche per Access: qualla che ci interessa si chiama Sql Server Migration Assistant (SSMA) for Access. Il prodotto viene scaricato in formato compresso: si decomprime e si lancia l’installer. Il programma richiede di scaricare le ultime librerie per Access 2010, ma se non abbiamo archivi di questo formato il passaggio è inutile. Una volta lanciato, il programma richiede di generare un codice di licenza gratuito con una semplice procedura di installazione. Ci vuole un account Windows Live, si salva un file in una cartella, si indica al programma la cartella dove abbiamo salvato il file e si può procedere….

Il wizard che ne consegue è piuttosto semplice: si scelgono i database da trasferire, si selezionano le Tabelle (ma in questo caso è possibile trasferire anche le Query) e si passano le credenziali al Server:

Credenziali per il Server

In questa maschera è necessario immettere tutto a mano, perchè le caselle a discesa non funzionano; se il Database non esiste sul Server viene creato in tempo reale. Fatto.

Considerazioni finali

SSMA fa più o meno le stesse cose del wizard di Access, ma in più archivia il “progetto” di migrazione e permette di modificare praticamente tutti gli aspetti che possono rivelarsi critici nel passaggio (compresa la corrispondenza del tipo dei dati Tabella per Tabella e Campo per Campo). Inoltre la gestione degli errori è ottima. Per strutture di Database complesse è senz’altro consigliabile usare SSMA.

D’altra parte il wizard di Access è molto più immediato e, almeno in un caso, è riuscito a trasferire una Tabella che SSMA ha scartato per un errore sull’indice. Resta il fatto che, dopo il trasferimento, è necessario esaminare con cura la struttura degli indici, delle chiavi e delle relazioni di ogni singola tabella: la differente gestione di questi aspetti da parte di Sql Server, infatti, merita la giusta attenzione come vedremo nel seguito.

(Fine Parte 2 – Continua)

1 ping

  1. Da Ms Access a Sql Server – Parte 4 » SixOfNine says:

    [...] abbiamo visto nella parte due di questo piccolo tutorial, dovremmo aver già creato un Utente per l’accesso a SQL Server (nel [...]

Lascia un Commento

Il tuo indirizzo mail non sarà pubblicato!

Puoi usare i seguenti tag HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>