Qery SQl Server 2005 con INSERT e MAX

giovedì 25 dicembre 2008 - 23.58

luxsor Profilo | Guru

Ciao, ho il seguente problema.
Ho due tabelle:
1 - TipologiaImpianti (Dove vengono inserite le tipologie di impianto)
2 - Materiali (Dove vengono inseriti tutti i materiali forniti per quella tipologia di impianto)
Nella 2 tabella c'è un campo IDTipologiaImpianto che corrisponde alla tipologia di impianto inserita nel database.
Io mio problema è che quando vado ad inserire una nuova tipologia di impianto, con l'istruzione INSERT INTO nella tabella TipologiaImpianti, per inserire i materiali nella tabella Materiali con un'altra INSERT INTO, devo prima eseguire un MAX(IDTipologiaImpianto) sulla 1 tabella per farmi restituire IDTipologiaImpianti dell'ultima tipologia di Impianto inserita.
Quindi faccio:
- passo 1 INSERT INTO nella 1° Tabella
- passo 2 MAX(IDTipologiaImpianto) sempre sulla 1° Tabella
- passo3 INSERT nella 2° Tabella con ID Ricavato nel passo 2
Come posso fare in modo che con una sola INSERT faccio tutto?



lbenaglia Profilo | Guru

>Quindi faccio:
>- passo 1 INSERT INTO nella 1° Tabella
>- passo 2 MAX(IDTipologiaImpianto) sempre sulla 1° Tabella
>- passo3 INSERT nella 2° Tabella con ID Ricavato nel passo 2
>Come posso fare in modo che con una sola INSERT faccio tutto?

Ciao Carmelo,

Semplice, non puoi
Con che DBMS stai lavorando?
In SQL Server potresti scrivere una banale stored procedure e tramite la funzione SCOPE_IDENTITY() recuperare l'ID della riga appena inserita nella prima tabella:
http://groups.google.it/group/microsoft.public.it.sql/msg/123d1395bd9791e8

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

luxsor Profilo | Guru

Ciao Lorenzo, come DBMS sto utilizzando SQL Server 2005 Express Edition.
Faccio un po di prove e ti faccio sapere.
Grazie

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