Aggiornare tabelle con sql

martedì 06 novembre 2007 - 12.04

ciccios100 Profilo | Junior Member

Ciao a tutti,
volevo chiedervi un aiuto, su una situazione di questo tipo.
Ho un db Access,con due tabelle,la prima anag e la seconda profilo;
In anag ho i campi id_anag,nome,cognome,prof,id_prof;
In profilo ho 2 campi id_profili,profili;
Nella prima tabella il campo id_prof ha valore null,io voglio sincronizzarlo con il campo id_profilo in modo tale da inserire in id_prof il valore di id_profilo corrispondente al prof;
Non so se sono riuscito a spiegarmi....spero di si!
Come soluzione avevo pensato ad una query update ma non so come farle fare i confronti fra i vari parametri...
potete darmi una mano aiutandomi a usare i comandi sql(vorrei lavorare direttamente con il codice sql)?
grazie in anticipo, e ciao

Ciccio Biagioni

lbenaglia Profilo | Guru

>In anag ho i campi id_anag,nome,cognome,prof,id_prof;
>In profilo ho 2 campi id_profili,profili;
>Nella prima tabella il campo id_prof ha valore null,io voglio
>sincronizzarlo con il campo id_profilo in modo tale da inserire
>in id_prof il valore di id_profilo corrispondente al prof;

E come faresti a sincronizzarlo se le due tabelle non hanno alcuna relazione logica tra di loro?
No JOIN, no align

>grazie in anticipo, e ciao
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

ciccios100 Profilo | Junior Member

scusami hai ragione mi sono dimenticato di dirti che anche nella tabella anag ho un campo desc_profilo e che collegando questo al campo profili della tabella profilio posso ottenere la sincronizzazione
.............ora per access io ho trovato questa soluzione:

>UPDATE anag INNER JOIN profilo ON anag.desc_profilo = profilo.profili
>SET anag.id_profilo = profilo.id_profili
>WHERE (((profilo.profili)=([anag].[desc_profilo])));

Questo è il codice SQL che mi produce access, e la sincro funziona correttamente,lo stesso codice è valido anche se lo inserisco in una query di sql server manager 05 oppure c'è da fare qualche modifica?
Ciccio Biagioni

lbenaglia Profilo | Guru


>.............ora per access io ho trovato questa soluzione:
>
>UPDATE anag INNER JOIN profilo ON anag.desc_profilo = profilo.profili
>SET anag.id_profilo = profilo.id_profili
>WHERE (((profilo.profili)=([anag].[desc_profilo])));
>
>Questo è il codice SQL che mi produce access, e la sincro funziona
>correttamente,lo stesso codice è valido anche se lo inserisco
>in una query di sql server manager 05 oppure c'è da fare qualche
>modifica?

Prova a tradurla in questo modo:

UPDATE anag SET id_profilo = P.id_profili FROM dbo.anag AS A INNER JOIN dbo.profilo AS P ON A.desc_profilo = P.profili WHERE P.profili = A.desc_profilo;

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
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