autonumericos

16/02/2004 - 17:40 por Giox | Informe spam
Hola Lista,
tengo un .asp que hace un insert la tabla a la cual hace referencia el
insert tiene un autonumerico, cual seria la forma mas rapida de saber cual
es el valor del autonumerico que se inserto??

yo lo hacia cuando trabajaba el metodo addNew, pero tengo la duda si hay
otra(s) formas


mil gracias

Preguntas similare

Leer las respuestas

#1 urko
16/02/2004 - 17:54 | Informe spam
te respondo con lo que dijeron varios foreros por aqui contestando a Jonas
que pregunto lo mismo
por Matias Iacono
Si trabajas con SQL Server, puedes crear un procedimiento almacenado y usar
la variable @@Identity (Si no mal recuerdo)

Esta te retorna el valor del autonumerico.

En el caso de que no tengas un SP, lo que deberias hacer es otra consulta y
seleccionar el ultimo registro creado.

Saludos


por Juan C. Barreiro
Id del dato ingresado se hace lo siguiente
(valido para Access y SQLServer).

Set RS = Server.CreateObject("ADODB.Recordset")
RS.open "Select * From tbl_laquetoque Where 1 = 2;", Conexion, 1, 3
RS.AddNew
'' metes los campos que deben ir, ej:
RS("campodb") = Request.Form("campoform")
RS.Update
IDrecuperado = RS("Id")
RS.Close
Set RS = Nothing

Donde IDrecuperado es el Id que se ha generado cuando se realizo la
transacción y suponiendo que Id es el campo autonumerico de la tabla.
Un saludo a todos.
Juan C. Barreiro

una opcion que puse yo
bueno
yo lo que suelo hacer es generar una cadena aleatoria
y cuando inserto el registro en el campo nombre por ejemplo meter la cadena
y luego hacer una select de ese registro where nombre='"&cadena&"'
idusuario=...
luego solo tendrias que hacer el update para poner el nombre correcto

un poco no complicado, mas bien rollo.
con identity lo probe en sql y funcionaba bien, aunque asi me aseguro.

saludos
urko

por Jhonny Vargas
En caso de Access (ya que Matias Iacono te dio la respuesta para SQL
Server)
Puedes consultar por el último registro ingresado a la tabla, según los
campos indices.

Select Top 1 ID From tabla Where Codigo = '001' And Fecha = '15/12/2003'
Orde By ID DESC

Es importante consultar por los campos indices de la tabla, ya que si no se
realiza, un usuario puede insertar un registro al mismo tiempo, lo que te
daria otro identity o autonumerico.

Saludos,
Jhonny Vargas P.

Y Benjamin Porter precisando lo comentado arriba
Una precisión: La verdad es que más que TOP 1 ID, sugiero MAX(ID), puesto
que el campo clave es autonumérico incremental y te aseguras traer el ultimo
valor almacenado que cumpla con ese requerimiento...



Diferentes formas para llegar al mismo punto.

urko

"Giox" escribió en el mensaje
news:
Mostrar la cita
#2 Giox
16/02/2004 - 18:13 | Informe spam
ok, gracias
lo hice asi

strSQL = "INSERT INTO EMPLEADO (NOMBRE, APELLIDO) VALUES
('NOMBRE','APELLIDOS')"
Conn.Execute(strSQL)

LUEGO

Set rst = Conn.Execute("select @@identity as ID")
intId = rst("ID")

sALUDOS gIOX

"urko" escribió en el mensaje
news:
Mostrar la cita
Jonas
Mostrar la cita
usar
Mostrar la cita
y
Mostrar la cita
cadena
Mostrar la cita
se
Mostrar la cita
ultimo
Mostrar la cita
cual
Mostrar la cita
#3 urko
16/02/2004 - 18:41 | Informe spam
hola
Lo que me gustaria saber es si
hay dos personas utilizando el sistema de altas de empleados,en este caso.
Set rst = Conn.Execute("select @@identity as ID")
puede darte el ID equivocado al haber insertado en la BD
justo en el mismo instante.
o se ejecuta para cada conexion.
es seguro este sistema?

Por eso yo utilizo el sistema que digo mas abajo,para asegurarme.


saludos
urko



"Giox" escribió en el mensaje
news:#
Mostrar la cita
consulta
Mostrar la cita
te
Mostrar la cita
puesto
Mostrar la cita
hay
Mostrar la cita
#4 Giox
16/02/2004 - 19:06 | Informe spam
umm eso si no lo habia evaluado
si el sistema de abajo pueda que sea mas seguro pero no me parece
el correcto

gracias de todas formas


"urko" escribió en el mensaje
news:
Mostrar la cita
SQL
Mostrar la cita
los
Mostrar la cita
no
Mostrar la cita
el
Mostrar la cita
saber
Mostrar la cita
#5 Matias Iacono
16/02/2004 - 19:55 | Informe spam
Si... es correcto... si hay dos personas... de la forma como lo estan
planteando te dara el ultimo insertado y no el correcto...

En cambio, en un SP, todo lo que se haga ahi, es un solo hilo, por ende, te
retornara ese ID, por mas que hubiera habido mas intersiones.

Saludos

"urko" escribió en el mensaje
news:
Mostrar la cita
SQL
Mostrar la cita
los
Mostrar la cita
no
Mostrar la cita
el
Mostrar la cita
saber
Mostrar la cita
Ads by Google
Search Busqueda sugerida