Dudas al insertar un registro en una tabla

26/04/2005 - 16:39 por [Juanjo] | Informe spam
Hola grupo:

Estoy haciendo una programa con VC# y SQL Server (MSDE). Quiero inserta
un registro en
un tabla que tiene clave primaria (entero) y autoincremento. Para insertar
el registro uso
el sqlDataAdapter que genera automaticamente, por lo que no necesito
especificar ningun parametro
para la clave primaria pero necesito recuperar ese campo cuando inserto un
registro.Como puedo
recuperarlo

He pensado en hacer un insert y un select acontinuacion pero no veo
viable esa solucion.

Viendo tambien la sentencia que genera:
INSERT INTO persona
(nombre, apellido, fecha)
VALUES (@nombre, @apellido, @fecha);
SELECT Clave, nombre, apellido, fecha
FROM persona
WHERE (Clave = @@IDENTITY)
No entiendo porque hace un insert y un select. alguien me puede explicar
por que?

Muchas gracias de antemano
 

Leer las respuestas

#1 Octavio Hernandez
26/04/2005 - 20:38 | Informe spam
Juanjo,

El valor de la clave primaria se genera del lado del servidor, por eso
detrás del insert se ejecuta un SELECT con @@IDENTITY para recuperarlo y
traerlo al conjunto de datos ADO.NET.

Es la t´´ecnica "oficial". Mira:

http://support.microsoft.com/defaul...-us;320897

Slds - Octavio

"[Juanjo]" escribió en el mensaje
news:%23mao$
Hola grupo:

Estoy haciendo una programa con VC# y SQL Server (MSDE). Quiero inserta
un registro en
un tabla que tiene clave primaria (entero) y autoincremento. Para insertar
el registro uso
el sqlDataAdapter que genera automaticamente, por lo que no necesito
especificar ningun parametro
para la clave primaria pero necesito recuperar ese campo cuando inserto un
registro.Como puedo
recuperarlo

He pensado en hacer un insert y un select acontinuacion pero no veo
viable esa solucion.

Viendo tambien la sentencia que genera:
INSERT INTO persona
(nombre, apellido, fecha)
VALUES (@nombre, @apellido, @fecha);
SELECT Clave, nombre, apellido, fecha
FROM persona
WHERE (Clave = @@IDENTITY)
No entiendo porque hace un insert y un select. alguien me puede
explicar por que?

Muchas gracias de antemano

Preguntas similares