Insert sql

mercoledì 16 maggio 2012 - 10.47

trinity Profilo | Guru

Ragazzi buongiorno :D

allora spiego immediatamente il mio problemino...ho un file txt con all'interno alcuni codice...questo codici rappresentano all'interno di alcune tabelle di un db sql una serie di record i quali record dovranno essere salvati in un'altra tabella sql...Per far ciò dovrei in pratica facendo un sequenza di fasi:

prima fase

leggere i record del file txt ed ad ogni record eseguire una select sulle tabelle con delle join e ricavare i veri valori da passare all'insert

seconda fase

eseguire l'insert dei valori che ho ottenuto dalla select precedente


DOMANDA:

Posso fare tutto con un'unica query tipo un inserto to select ma la select deve avvenire per ogni singolo campo in quanto le tabelle da cui devo prendere i dati sono diverse....
Oppure devo crearmi una tabella virtuale e con un cursore riempire tale tabella dei valori che mi servono e poi fare un insert to select dalla utilizzando la tabella virtuale? (spero nn sia la stessa cosa di sopra detto)

Oppure accetto qualsiasi idea e consiglio

Cerco di postarvi le tabelle per darvi un'idea migliore:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

in pratica nel file txt per esempio mi passano solo e sempre la provincia con il suo codice interno che nell'esempio è '058' solo che nella tabella di destinazione del mio database io devo passarci oltre che al codice della provincia e alla sua descrizione anche il codice regione e descrizione di appartenenza ossia nel caso di esempio il codice regione è =8 ma la sua descrizione si trova nella tabella tab_regioni_nazioni..quindi dovrei fare una join tra le due tabelle e ricavare il valore che mi serve....

ecco io vorrei fare queste selezioni e la successiva insert in un'unica stored procedure


Nb calcolate che alcuni valori nella tabella di destinazione verranno presi direttamente dalla lettura del file txt mentre altri come detto sopra si devono prendere da select su tabelle sql

In pratica è meglio che spiego + accuratamente....

Allora ecco come è struttura una riga del file txt:

CodiceProvincia As varchar(3),
CodiceComune As varchar(3),
CodiceAlbergo As varchar(4),
CodiceCategoria As varchar(2),
DataArrivo As date,
DataPartenza As date,
CodiceNazione As varchar(3),
CodiceProvinciaMov As varchar(3),
CodiceGruppo As int,
NumeroSchedina As varchar(5),
CamereDisponibili As varchar(5),
CamereOccupate As varchar(5)

ora ho la tabella che si chiama Movimenti e disponibilità che devono essere riempite da questi dati, solo che nella tabella movimenti io devo indicare il nome della Nazione ed il nome della provincia qualora la nazione fosse Italia.
Invece le camere disponibili ed occupate insieme alla data di arrivo ed ala codice albergo devo essere salvate nella tabella Disponibilità.

Adesso io voglio eseguire il tutto in un'unica stored....calcolando che alcuni dati nella tabella movimenti verranno passati prendendoli direttamente dal file txt quindi potrei passarli come parametri mentre altri dovranno essere presi da altre tabella all'interno del db come quelle sopra indicate eseguendo delle select con dei vincoli i cui valori sono sempre presi dal file txt.
Infine per la tabella disponibilità devo eseguire sempre una lettura perche le disponibilità vanno salvate per giorno ossia se per esempio nel file txt ci sono due date di arrivo ossia 15 e 16 maggio e nella tabella disponibilità non ci sono queste date allora eseguo una insert altrimenti devo eseguire un update con parametro la data di arrivo

Lo so che il quesito che ho postato è molto complicato ma ho cercato di spiegare con la massima accuratezza

Ciao


Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5