@@Identity

11/06/2004 - 12:33 por Kravek | Informe spam
El problema es que tras hacer un insert (voy a usar SQL Server pero si
también me lo explicais para access...) necesito recuperar el Id de dicho
campo, he oído que se hace con @@Identity pero no sé muy bien donde ponerlo
ni como alguna ayuda??
 

Leer las respuestas

#1 Jhonny Vargas P.
15/06/2004 - 15:34 | Informe spam
Buen punto Manuel gracias.


Saludos,
Jhonny Vargas P. [MVP]
Santiago de Chile

"Manuel Etcheto" escribió en el
mensaje news:1c5c001c4527e$3d963e70$
Una aclaración Jhonny:
@@identity es "peligroso" porque tiene alcance de sesión,
por lo que NO necesariamente te va a dar el autonumerico
que acabas de insertar, sino el último dentro de la
sesión, que bien podría ser (o llegar a ser el día de
mañana cuando alguien agregue un trigger) el id que se
insertó en una tabla que disparó un trigger a causa del
insert del store...etc.
En SQL 2000 la solución es SCOPE_IDENTITY() que se limita
al lote de instrucciones o Stored Procedure
En 7.0 hay que "pelearla" a pelo...

Salu2
Manuel



Funciona perfectamente

pero te recomiendo que coloques eso en un procedimimiento


almacenado y
ejecutes el sp mejor.

Ejemplo:

Create Procedure AgregarCustomerProfile
@CustomerName varchar(50),
@CustomerAge int
As

Set noCount ON
INSERT INTO CustomerProfile (CustomerName,


CustomerAge)
VALUES (@CustomerName, @CustomerAge )

Select @@Identity

Go


y luego ejecutas lo siguiente:

strSQL = "AgregarCustomerProfile '" & txtName & "'," &


nAge & ""

Set rsIdentity = Conn.Execute(strSQL)

Dim iCurrentValue
iCurrentValue = rsIdentity(0)



Saludos,
Jhonny Vargas P. [MVP]
Santiago de Chile




"Kravek" <rubengARROBAkailea4.net> escribió en el mensaje
news:
Gracias!! pero me puedes confirmar lo de Sashka?es




decir, si funcionaría
si
varios usuarios accedemos simultáneamente?






.

Preguntas similares