Recuperare ID Da INSERT INTO

venerdì 16 ottobre 2009 - 15.51

gmt Profilo | Junior Member

Salve,
Parliamo di SQL Server 2005.
Ho un'istruzione del tipo
INSERT INTO [tab_fatture]
(campo1, campo2)
SELECT campo1, campo2
FROM tab_notule
WHERE (fkidazienda = 2) AND (fkidfattura IS NULL) AND (numero > 0 AND numero < 100) AND (anno = 2009)

vabbe' funziona.. in tab_fatture c'è il campo id (identity) che ovviamente per ogni inserimento si valorizza..
io per ogni inserimento devo:
- avere l'id della tabella tab_fatture per fare un update in una terza tabella movimenti (update tab_movimenti set fkidfattura = @@IDENTITY)
- aggiornare nella tabella tab_notule un campo fkidfattura con lo stesso @@IDENTITY

potete darmi un suggerimento di cosa guardare per studiarmi questa cosa, volevo evitare i cursori!!
Ciao e Grazie

alx_81 Profilo | Guru

>Salve,
Ciao

>potete darmi un suggerimento di cosa guardare per studiarmi questa cosa, volevo evitare i cursori!!
Puoi usare questa strada:

USE tempdb; GO CREATE TABLE #prova (id int IDENTITY(1, 1), val varchar(10)) GO DECLARE @t TABLE (id int, val varchar(10)) INSERT INTO #prova (val) OUTPUT INSERTED.* INTO @t SELECT 'a' UNION SELECT 'b' UNION SELECT 'c' UNION SELECT 'd' UNION SELECT 'e' SELECT * FROM @t -- in t hai gli identity dei record inseriti e puoi fare update join con altre tabelle DROP TABLE #prova GO

con la clausola output ottieni gli id creati nel campo identity e avendo una tabellina, puoi aggiornare con la join sulle altre tabelle.

>Ciao e Grazie
di nulla!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

gmt Profilo | Junior Member

Mitica!
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5