Campo Autonumérico

15/05/2004 - 11:26 por José Fernández | Informe spam
Amigos, necesito saber despues de insertar un registro en una base de datos
SQL Server 2000 utilizando ADO, que valor me ha dado a ese campo
autonumérico.

He estado probando

Registros.Open "SELECT SCOPE_IDENTITY() AS 'CampoNuevo'
Msgbox "Valor devuelto" & Registros.Fields("CampoNuevo")

Y siempre me devuelve nulo.

Previamente hago un INSERT y eso me lo hace perfectamente.

Si alguien me puede ayudar o me puede decir que hago mal, se lo agradecería.

Gracias.

Preguntas similare

Leer las respuestas

#6 Marcelo W. López Cremona
18/05/2004 - 00:39 | Informe spam
Muchas gracias. Cada día aprendo más de sql server, me gusta podre aprender
cosas nuevas y aclarar algunos conceptos erroneos.
;-)

Gracias JAVIER
Marcelo


"Javier Loria" wrote in message
news:
Hola Marcelo:
Exacto, lo que significa que da el ultimo valor aun cuando otro


usuario
o sesion agregen una linea. :(
Si la estacion A agrega un linea y se le asigna el numero 2, y casi
simultaneamente la estacion B agrega otra linea se le asigna 3. Si corres
ident_current en la estacion A reportara el 3, con lo cual puede inducir a
serios errores de integridad :(
La tecnica del scopy_identity sirve siempre y cuando sea en el mismo
lote de instrucciones. Si no es posible hacer esto, entonces puede hacerse
un SELECT poniendo en el WHERE la llave primaria natural. Esto se hace
tambien cuando se requieren varias filas.

Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Marcelo W. Lopez Cremona escribio:
> Sustraido de la ayuda de sql Server 2k.
>
> Devuelve el último valor de identidad generado para una tabla
> especificada en cualquier sesión y cualquier alcance
>
>
> Saludos
> Marcelo W. López
> Tucumán-Argentina
> "Miguel Egea" escribió en el
> mensaje news:
>> ¡No!, ident_current, no funciona si otro usuario inserta enmedio te
>> dará la clave del otro usuario
>> Lo que tienes que hacer es en el mismo bacth meter ambas
>> instrucciones, así funcionará estupendamente.
>>
>> Saludos
>> Miguel Egea
>>
>>
>>
>> "Marcelo W. Lopez Cremona" escribió en el
>> mensaje news:#
>>> Hola, la función scopy_identity te retorna el identity cdo lo
>>> hiciste en el mismo enlace, debido a que usas dos instrucciones
>>> separadas, sql te devuelve el identity de la sesion la cual es solo
>>> la instrucción (SELECT scopy_identity()), esto funcionaría en un
>>> entorno de lotes de datos o un procedimiento almacenada.
>>> Te recomiendo que uses ident_current('nombre_tabla'), esto si te
>>> retornará lo que deseas.
>>>
>>> Suerte.
>>> ;-)
>>>
>>> Marcelo W. Lopez
>>> Tucumán - Argentina
>>>
>>>
>>> "José Fernández" escribió en el mensaje
>>> news:
>>>> Amigos, necesito saber despues de insertar un registro en una base
>>>> de datos SQL Server 2000 utilizando ADO, que valor me ha dado a
>>>> ese campo autonumérico.
>>>>
>>>> He estado probando
>>>>
>>>> Registros.Open "SELECT SCOPE_IDENTITY() AS 'CampoNuevo'
>>>> Msgbox "Valor devuelto" & Registros.Fields("CampoNuevo")
>>>>
>>>> Y siempre me devuelve nulo.
>>>>
>>>> Previamente hago un INSERT y eso me lo hace perfectamente.
>>>>
>>>> Si alguien me puede ayudar o me puede decir que hago mal, se lo
>>>> agradecería.
>>>>
>>>> Gracias.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida