SQL Server - Insert en tablas con campo identity

   
Vista:

Insert en tablas con campo identity

Publicado por Fredy Ayala (20 intervenciones) el 16/04/2012 23:04:55
Buenas tardes amigos,

Tengo lo siguiente:

tabla venta y venta.detalle

la tabla venta tiene un campo unico que se llama nro.venta y es identity (autonumerico). Este campo apunta a la tabla venta.detalle

CONSULTA:

Al insertar un registro en la tabla venta y éste me genera un numero correlativo, como hago para llevar éste valor a la tabla venta.detalle?

muchas gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Insert en tablas con campo identity

Publicado por David (2 intervenciones) el 17/04/2012 02:25:34
hola Fredy, nos e si te entendi bien pero
lo podrias recuperar y meter a una variable algo asi

declare @nro varchar(20)
--esta parte te devuelve el ultimo registro insertado
SELECT @nro=max(nro.venta) FROM venta

--y luego insertas @nro en tu tabla venta.detalle como id de la tabla venta

espero te sirva saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insert en tablas con campo identity

Publicado por Fredy (20 intervenciones) el 17/04/2012 02:45:26
Muchas gracias David y Emerson!

Solo que tengo una pequeña duda al respecto. Que pasa si inserto mi venta cabecera (con numero 1), antes de insertar mi detalle, alguien mas inserta la cabecera (con numero 2)? Sera que no va tomar el valor del ultimo que se inserto? Por ejemplo en vez de enumerarme 1 me enumera mi detalle con el 2.

Gracias por la ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insert en tablas con campo identity

Publicado por emerson palacios (2 intervenciones) el 17/04/2012 02:34:50
Lo puedes hacer como dice el amigo David pero si te quieres ahorrar unas cuantas lineas de codigo lo haces como lo hago yo , insert into venta.detalle campo1,campo2,campo3 etc select max(NRO.VTA),'valcampo1','valcampo2','valcampo3'.etc from venta eso seria todo prueba a ver como te va.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insert en tablas con campo identity

Publicado por Fredy (20 intervenciones) el 17/04/2012 02:46:02
Muchas gracias David y Emerson!

Solo que tengo una pequeña duda al respecto. Que pasa si inserto mi venta cabecera (con numero 1), antes de insertar mi detalle, alguien mas inserta la cabecera (con numero 2)? Sera que no va tomar el valor del ultimo que se inserto? Por ejemplo en vez de enumerarme 1 me enumera mi detalle con el 2.

Gracias por la ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Insert en tablas con campo identity

Publicado por Isaias (3180 intervenciones) el 20/04/2012 17:28:03
En ese caso, debes manejar las insercciones con STORE PROCEDURE y en este, llevar a cabo control de insercciones con transacciones explicitas BEGIN TRAN, COMMIT TRAN, ROLLBACK TRAN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar