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
Select @@IDENTITY oppure OUTPUT INSERTED.nomeCampoID
lunedì 01 marzo 2010 - 10.36
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
lun 1 mar 2010 - 10:36
Ciao amici,
finora per recuparare l'id del record appena immesso ho sempre usato Select @@IDENTITY.
Ho appena scoperto invece la clausola OUTPUT INSERTED.nomeCampoID
Quale delle due è migliore?
Quali sono le differenze?
Grazie
Riccardo D'Aria
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 1 mar 2010 - 10:46
>Ciao amici,
ciao
>finora per recuparare l'id del record appena immesso ho sempre
>usato Select @@IDENTITY.
>Ho appena scoperto invece la clausola OUTPUT INSERTED.nomeCampoID
>Quale delle due è migliore?
>Quali sono le differenze?
a dire il vero la migliore è una terza, la SCOPE_IDENTITY()
http://msdn.microsoft.com/it-it/library/ms190315.aspx
all'interno del link vedrai le differenze con @@IDENTITY.
La clausola output consente la creazione di una tabella che possiede i campi inseriti, modificati o cancellati, in base all'istruzione che si utilizza (insert, update, delete). Diciamo che con essa puoi avere un resultset di output che puoi salvare e riutilizzare in seguito. Non è specifica per le colonne identity, ma si allarga anche all'intero resultset.
>Grazie
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
lun 1 mar 2010 - 11:51
ti ringrazio per la risposta, ma tra scope-identity, @@identity, e output, l'unica che sono riuscito a far funzionare in una query di tipo UPDATE è stata OUTPUT.
Spero per banali motivi di sintassi.
E se è così potresti indicarmi la sintassi giusta per utilizzare la scope_Identity anche in istruzioni di UPDATE?
Grazie ancora
Riccardo D'Aria
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 1 mar 2010 - 11:58
>ti ringrazio per la risposta, ma tra scope-identity, @@identity,
>e output, l'unica che sono riuscito a far funzionare in una query
>di tipo UPDATE è stata OUTPUT.
certo, se fai update è corretto. Ma in tal caso non ti serve sapere l'identity.. mica lo puoi modificare..
>Spero per banali motivi di sintassi.
>E se è così potresti indicarmi la sintassi giusta per utilizzare
>la scope_Identity anche in istruzioni di UPDATE?
non si può
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
lun 1 mar 2010 - 12:17
>>ti ringrazio per la risposta, ma tra scope-identity, @@identity,
>>e output, l'unica che sono riuscito a far funzionare in una query
>>di tipo UPDATE è stata OUTPUT.
>certo, se fai update è corretto. Ma in tal caso non ti serve
>sapere l'identity.. mica lo puoi modificare..
Ok allora con update uso OUTPUT, giusto!?
dimmi, se uso OUTPUT anche per insert into è una cosa sbagliata?
Nel senso faccio una castroneria che mi può comportare degli errori di difficile comprensione e/o intercettazione?
Grazie
>
>
>--
>
>Alessandro Alpi | SQL Server MVP
>MCP|MCITP|MCTS|MCT
>
>
http://www.alessandroalpi.net
>
http://blogs.dotnethell.it/suxstellino
>
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
>
Riccardo D'Aria
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 1 mar 2010 - 12:19
>Ok allora con update uso OUTPUT, giusto!?
se ti serve sapere qual è o quali sono i record modificati, sì.
>dimmi, se uso OUTPUT anche per insert into è una cosa sbagliata?
>Nel senso faccio una castroneria che mi può comportare degli
>errori di difficile comprensione e/o intercettazione?
sinceramente non capisco perchè dovresti usare la output, ma è un limite poichè non conosco la situazione reale.
Detto questo, di solito, faccio delle stored procedure che in insert mi tornano la scope_identity() e in update controllo se è stato fatto o meno l'aggiornamento. Se poi a te serve altro, usa pure la output.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
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 !