Domanda

ho un procedimento in cui mi inserisco record dipendente table.nad ottenere EmpID utilizzando @@ identità? Quando questa procedura sarà chiamato da più di un utente allo stesso tempo, non ci può essere la possibilità che restituisce l'identità di un altro dipendente inserita alla stessa di .because non v'è alcun blocco sull'identità dal sistema?

- codice --identity avanti per EmpID colonna
inserire in dipendente valori (nome) ( 'Sahil'); ritorno @@ identity

di SQL Server 2005: è sicuro da usare @@ identità ? per la serratura sul tema dell'identità

È stato utile?

Soluzione

Si deve usare SCOPE_IDENTITY (), invece. Tuttavia, @@ IDENTITY si riferisce alla connessione corrente in modo che altri utenti non riguardano voi, ma ci sono altre questioni da considerare.

Maggiori informazioni qui .

Altri suggerimenti

@@ identità non è sicuro da usare. Se la tabella ha un trigger con un inserto a una tabella differente con un'identità che è il valore che verrà restituito. Non usarlo per ottenere il valore idnetity appena inserito. Si può pensare bene non ho un trigger ora, ma non si sa mai quando si potrebbe essere aggiunto e si può andare un lungo periodo di tempo prima di rendersi conto che i dati siano irrimediabilmente incasinato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top