SQL Server e SSIS : copia di record tra 2 DB eterogenei

mercoledì 31 dicembre 2008 - 10.55

the_driver Profilo | Senior Member

Ciao a tutti,recentemente ho installato SQL Server Business Intelligence Development Studio in quanto dovrei trasferire dei record da un database ad un altro. Siccome non ho mai usato SSIS, ho iniziato a visionare alcuni oggetti tra cui Data Conversion e Script component , ho però questo problema:

Il mio database sorgente ha 2 tabelle:

USER e USER-MUSIC (indica i 3 tipi di musica preferiti), in relazione 1->M .

es:


USER (1 record) USER-MUSIC (2 record)

id_user: 1 id_user_music:1 id_user_music:2
name: Pippo id_user:1 id_user:1
surname: Pluto type:rock type:dance
address: via Papero
...




Dovrei trasportare i rispettivi valori in un DB di destinazione in cui è presente un unica tabella, chiamata USER e che contiente tra le sue colonne anche M1,M2 e M3 che sono le 3 preferenze.

La mia domanda è questa,utilizzando SSIS, come faccio a impostare il seguente job?


Premesso che ho già trasferito tutti i dati di USER applicando le rispettive conversion (dove richieste dal DB destinazione), ma come faccio a gestire questa relazione 1->M?

Grazie

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao!

>recentemente ho installato SQL Server Business Intelligence
>Development Studio in quanto dovrei trasferire dei record da
>un database ad un altro. Siccome non ho mai usato SSIS, ho iniziato
>a visionare alcuni oggetti tra cui Data Conversion e Script component
>, ho però questo problema:
>Il mio database sorgente ha 2 tabelle:
>USER e USER-MUSIC (indica i 3 tipi di musica preferiti), in
>relazione 1->M .
>es:

>USER (1 record) USER-MUSIC
>(2 record)
>
>id_user: 1 id_user_music:1
>id_user_music:2
>name: Pippo id_user:1
>id_user:1
>surname: Pluto type:rock
>type:dance
>address: via Papero

>La mia domanda è questa,utilizzando SSIS, come faccio a impostare
>il seguente job?
Come ti ho scritto via email (scusami se leggo il post solo ora, ma sono appena tornato dalle feste ) ti indico due link che dovresti leggerti per capire come usare l'operatore o il task di PIVOT/UNPIVOT:

Leggi qui per capire come utilizzarlo, qui un esempio:
http://www.sql-server-performance.com/article_print.aspx?id=1077&type=art

Vedi se riesci a trasporre la tabella ed i record che ti interessano per ottenere ciò che ti serve.
In alternativa, puoi fare tutto da source con T-SQL e gli operatori di pivoting ed unpivoting:
http://technet.microsoft.com/en-us/library/ms177410.aspx

>Grazie
di nulla!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

the_driver Profilo | Senior Member

Grazie mille,ho letto l'articolo da te postato ... molto interessante

Ho però risolto grazie alla tua guida SSIS,praticamente ho creato un "percorso parallelo" attraverso un foreach e sembra andare tutto nel modo corretto,anche perchè necessitavo di conversioni.


Grazie mille!!!!

alx_81 Profilo | Guru

>Grazie mille,ho letto l'articolo da te postato ... molto interessante
grazie

>anche perchè necessitavo di conversioni.
e non potevi farle direttamente con SQL Server? Direttamente nella query intendo..

>Grazie mille!!!!
di nulla!
Se il post ti ha aiutato, accetta la risposta così chiudiamo il thread. Grazie.

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5