Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Domanda veloce
mercoledì 04 gennaio 2006 - 16.39
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
lordwaizard
Profilo
| Senior Member
294
messaggi | Data Invio:
mer 4 gen 2006 - 16:39
Come posso aggiornare una riga prendendo il valore da un'altra tabella?
ES:
Tabella1
Codice(int)
QTA(int)
Tabella 2
Codice(int)
Dati (int)
QTA (int)
Dovrei sviluppare il seguente codice:
UPDATE tabella2 SET qta = TABELLA1.qta WHERE codice = '3'
Ovviamente TABELLA1.qta non funziona come posso risolvere il problema?
Grazie e scusate per la domanda banale.
Saluti
Davide
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 4 gen 2006 - 17:10
> Come posso aggiornare una riga prendendo il valore da un'altra tabella?
Ciao lordwaizard,
credo che un esempio valga più di 1000 parole :-)
USE tempdb;
GO
/* Definisco la tabella di dbo.Tabella1 */
CREATE TABLE dbo.Tabella1(
Codice int NOT NULL PRIMARY KEY,
QTA int NOT NULL
);
GO
/* Definisco la tabella di dbo.Tabella2 */
CREATE TABLE dbo.Tabella2(
Codice int NOT NULL PRIMARY KEY,
Dati int NOT NULL,
QTA int NOT NULL
);
GO
/* Le popolo */
INSERT dbo.Tabella1 VALUES(1, 10);
INSERT dbo.Tabella1 VALUES(2, 20);
INSERT dbo.Tabella1 VALUES(3, 30);
INSERT dbo.Tabella2 VALUES(1, 100, 0);
INSERT dbo.Tabella2 VALUES(2, 200, 0);
INSERT dbo.Tabella2 VALUES(3, 300, 0);
INSERT dbo.Tabella2 VALUES(4, 400, 0);
GO
/* Aggiorno la Tabella 2 valorizzando la colonna quantità
** con i corrispondenti valori di Tabella 1 per il codice 1
*/
UPDATE dbo.Tabella2
SET QTA = T1.QTA
FROM dbo.Tabella1 AS T1 JOIN dbo.Tabella2 AS T2
ON T1.Codice = T2.Codice
WHERE T1.Codice = 1;
GO
/* Vediamo */
SELECT *
FROM dbo.Tabella2;
GO
/* Output:
Codice Dati QTA
----------- ----------- -----------
1 100 10
2 200 0
3 300 0
4 400 0
(4 row(s) affected)
*/
/* Se voglio posso aggiornare tutte le righe in una "botta" sola */
UPDATE dbo.Tabella2
SET QTA = T1.QTA
FROM dbo.Tabella1 AS T1 JOIN dbo.Tabella2 AS T2
ON T1.Codice = T2.Codice;
GO
/* Vediamo */
SELECT *
FROM dbo.Tabella2;
GO
/* Output:
Codice Dati QTA
----------- ----------- -----------
1 100 10
2 200 20
3 300 30
4 400 0
(4 row(s) affected)
*/
/* Pulizia */
DROP TABLE dbo.Tabella1, dbo.Tabella2;
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
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 !