1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
morph3us ha scritto:
scusatemi ancora, l'applicativo lavorera con piu utenti in contemporanea, e quindi non devo necessariamente recuperare l'ultimo id, ma l'ultimo id inserito da quell'utente...., lo si puo fare con top 1?


No, allora devi utilizzare una istruzione simile a

SELECT campi
FROM dbo.MyTable
WHERE ID = SCOPE_IDENTITY()

Ma attenzione al fatto che se sulla tabella dbo.MyTable esiste (ad esempio) un trigger che va ad inserire un record su un'altra tabella e su questa c'è un campo identity, la SCOPE_IDENTITY ti restituirà il valore inserito in quest'ultima tabella.
La cosa migliore sarebbe probabilmente utilizzare per gli inserimenti una stored procedure che restituisca al chiamante, per mezzo di un parametro di output, il valore identity ottenuto per mezzo della funzione IDENT_CURRENT e che il client utilizzi poi tale valore per la successiva select. Ma non capisco per quale motivo un client debba fare una select per leggere dei valori che ha appena inserito. Non fai prima a ricordarteli?

Ad ogni modo fai riferimento al Book On Line di SQL Server per i dettagli sulle funzioni SCOPE_IDENTITY, IDENT_CURRENT e @@IDENTITY

Bye

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.