7 messaggi dal 28 febbraio 2002
Salve a tutti,
dovrei importare dei dati da una tabella ACCESS sprovvista di ID
a una tabella SQL che invece ne è provvista e di conseguenza mi dovrebbe
numerare in progressivo i nuovi dati.
Qualcuno mi può dare una dritta sul metodo più immediato per farlo..possibilmente con un piccolo esempio?
Saluti e Grazie , Giampaolo

Rebel
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
Mi vengono in mente 3 possibilità. La prima è quella di utilizzare l'Upsize Wizard di Access; dal menù Strumenti -> Utilità Database -> Upsize guidato.
La seconda strada è quella di farlo lato SQL Server utilizzando i DTS e la terza possibilità è quella di definire, sempre in SQL Server, un linked server verso Access da cui accedere per prelevare i dati e buttarli nella tabella di destinazione.
Per i primi 2 metodi dovrei farti degli screenshot del mio monitor per darti un esempio. Per il terzo metodo procedi in questo modo

1) definisci un linked server seguendo le indicazioni fornite sul Book On Line di SQL Server
2) a questo punto puoi accedere alle tabelle del db access, da SQL Server, utilizzando una sintassi tipo

INSERT MyTable (campo1, campo2, campo3)
SELECT campoa, campob, campoc
FROM MyDBaccess...MyTableAccess
WHERE condizione

Bye
7 messaggi dal 28 febbraio 2002
Ciao,
Ho utilizzato i primi due metodi,
il problema è che dandogli in pasto dei dati sprovvisti di un'ID mi dà un'errore di conflitto con l'ID della tabella SQL in cui invece è presente e non ammette valori null,ciò che voglio è che mi prenda i dati ACCESS e gli assegni un ID progressivo in automatico. E' possibile?

Ciao Grazie

Rebel
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
rebel ha scritto:
Ciao,
Ho utilizzato i primi due metodi,
il problema è che dandogli in pasto dei dati sprovvisti di un'ID mi dà un'errore di conflitto con l'ID della tabella SQL in cui invece è presente e non ammette valori null,ciò che voglio è che mi prenda i dati ACCESS e gli assegni un ID progressivo in automatico. E' possibile?

Ciao Grazie


Con l'upsize di Access non saprei ma con i DTS è possibile a patto di definire opportunamente le coppie source/destination nel mapping dei campi. Se non hai una sufficiente dimestichezza nell'utilizzo di DTS (e di SQL Server in generale) puoi sempre parcheggiare i dati in una tabella di SQL Server e da qui poi trasferirli nella tabelle di destinazione.
Oppure c'è il terzo metodo che ti ho indicato...

Bye
642 messaggi dal 25 luglio 2003
Se hai problemi taglia la testa al toro, crea una nuova tabella access con tutti i campi di quella che vuoi copiare più quello id!
Nella struttura della tabella (quella appena creata) imposta l'ID con tipologia contatore e valore base l'ultimo ID+1 della tabella sql dove dovranno andare a finire i record, dopo di che copia la tabella!

P.S. questo però naturalmente se la copia la devi fare una volta sola! ;)-
7 messaggi dal 28 febbraio 2002
No..purtroppo và ripetuta...

Rebel
642 messaggi dal 25 luglio 2003
Ma in che senzo va ripetuta? Deve essere un'operazione automatica o di tipo manuale che va fatta una volta al giorno?

Perché potresti pure fare una semplice paginetta asp.net (se non vuoi perderti nei meandri di SQL Server) dove leggi il record nella tabella Access, leggi l'ultimo ID nella tabella SQL e poi reggistri il record access nella tabella SQL Server con l'ID=UltimoID+1

No?!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.