Sql Server 2008 r2: trigger su evento insert/update: recuperare ID row...

venerdì 12 ottobre 2012 - 09.17
Tag Elenco Tags  SQL Server 2008 R2  |  SQL Server 2008

the_driver Profilo | Senior Member

Ciao a tutti,

volevo sapere se con i trigger riesco a recuperare l'id del record appena inserito/modificato in una tabella specifica

La procedura di insert / update viene richiamata da una app web.


Vi ringrazio

TOPOAMORE Profilo | Expert

certo

nel trigger nell'intecettazione dopo insert effettu semplicemente una chimata alla tabella di sistema inserted recuperando l'id o il nome del campo da te interessato:

select id from inserted

ciaoooo
__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

rigutini Profilo | Newbie

hhhh

e se uso

SELECT * FROM tabella WHERE (chiave = @@IDENTITY)

??
Grazie
Chiara

TOPOAMORE Profilo | Expert

in un trigger puoi recuperare i dati dalle tabelle inserted e deleted che contengono tutti i campi della tabella interessata dall'operazione.....

la tua query inoltre ha un errorino nel senso

>SELECT * FROM tabella WHERE (chiave = @@IDENTITY)

@@identity recupera l'ultimo id dell'intero sistema

dovresti usare scope_identity che recupera id della tua sessione non tenendo conto deglia altri inserimenti effettuatu da altri

Ciaooo

__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

the_driver Profilo | Senior Member

Per quanto riguarda l'evento update?

TOPOAMORE Profilo | Expert

Un UPDATE non e altro che un DELETE e un INSERT quindi devi verificare se nelle due tabelle inserted e deleted esiste un id identico e verificare quale campo e varicato....

Se cerchi nel forum ci sono un po di post che ne parlano.....


__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

rigutini Profilo | Newbie

Grazie!! provo

Grazie
Chiara

Feroxis Profilo | Junior Member

Io di solito richiamo l'utente con uno dei parametri che resta Unico nel database, se è un utente potrebbe essere il NickName o UserName, se ne esistono di uguali potrebbe essere la mail o il Codice Fiscale. Se li hai appena inseriti li hai ancora a disposizione nel "form".


SELECT * WHERE
se ti serve solo l'id
dim id as integer
cn.open
id = cm.executescalar (se l'id è al primo posto nelle colonne)
cn.close
cm.parameters.clear
Se è usato da piu persone contemporaneamente non è detto che sia l'ultimo record quello che tu hai inserito.
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5