PDA

Visualizza la versione completa : [SQL] Modificare campi chiave di due tabelle


flarella
15-05-2006, 19:59
Ciao ragazzi solo voi potete colmare la mia ignoranza....

Ho 2 tabelle di un Db

TAB A

ID COD DESCR

TAB B

COD

Ora la Tabella A contiene l'ID un codice ed una descrizione e devo far si che il codice prenda lo stesso valore della descrizione e fino a qui non ho problemi solo che la tabella collegata alla tabella B tramite il campo codice che se vado a cambiare mi scollega tutte le righe... possibile dire di inserire nella tabella b al campo codice quello che c' scritto nella tabella a nel campo descrizione o in qualunque altro modo altrimenti me le devo modificare tutte a mano!!!! :maLOL:

oregon
15-05-2006, 20:03
Se non ho capito male hai costruito male il DB in partenza ...

La soluzione sarebbe

1) Inserire un campo Id nella tabella B copiando nei vari record quello della tabella A basandoti sul campo Cod attuale

2) Elimina il campo Cod dalla tabella B

3) Effettua tutti i cambiamenti che vuoi nel campo Cod della tabella A

flarella
15-05-2006, 20:11
Il db non l'ho fatto io ma di un programmino del cavolo... quindi non posso modificarne assolutamente la struttura per devo far si che il codice della tabella A sia uguale alla descrizione senza dover mettere manualmente mano alla tabella B visto che sono circa 3000 record!

oregon
15-05-2006, 20:15
Ma com'e' che non puoi modificare la struttura del DB se stai facendo un programma che si basa su quello?

Crea un altro db con i campi corretti e sposta i dati ...


Altrimenti non so cosa dirti ...

flarella
15-05-2006, 21:47
Il programma non mio... me lo sono trovato. Dici che nessuna istruzione SQL riesce a fare una cosa del genere? dovrebbe capire quali descrizioni sono associate ai codici e cambiare il campo codice della tabella b.

oregon
16-05-2006, 00:07
Fammi un esempio di come sono i dati e come devono diventare ...

flarella
16-05-2006, 00:24
Allora... nella tabella A ci sono dei reparti

ID COD DESCR

01 001 MAGAZZINO

nella tabella B la gente

ID Nome Cognome Reparto

01 Mario Rossi 001

Ora siccome sto programmino schifoso la stampa della gente divisa per reparto la fa col codice del reparto invece che con la descrizione io dovrei cambiare il codice 001 in MAGAZZINO e dovrei sostituire tutti gli 001 nella colonna reparto della tabella b con MAGAZZINO altrimenti le tabelle non son pi collegate tra loro.

oregon
16-05-2006, 00:33
Ma sei sicuro che il campo COD possa contenere i dati contenuti in DESCR

In genere i due campi hanno lunghezza diversa ... quindi potrebbe neanche funzionare quello che chiedi di fare ...

flarella
16-05-2006, 20:36
Hanno lunghezza diversa, ma i dati contenuti in descr non sono mai pi lunghi del massimo consentito in cod

Loading