SQL - Campo Autonumerico y dos tablas relacionadas

 
Vista:

Campo Autonumerico y dos tablas relacionadas

Publicado por ttt0428 (1 intervención) el 22/04/2004 18:26:58
Resulta que tengo dos tablas. Una que la utilizo de cabecera y otra que la utilizo para los detalles. La primera tiene un campo autonumerico y la segunda tiene un campo que debe de tener el mismo valor que la tabla de la cabecera para pertenecer a la cabecera.

Resulta que introduzco los datos en la tabla de cabecera y luego los introduzco en la tabla de detalles. El problema está en hallar ese número. Yo he pensado en hacerlo por medio de otro campo tipo Date/Time o haciendo una select en la cabecera y recogiendo solo la ultima fila. Sin embargo estas dos soluciones pueden darme un error si he introducido una fila en la tabla de cabecera y antes de introducir una de detalles otro usuario accede y mete otra cabecera o si dos usuarios introducen en el mismo segundo una cabecera.

Alguien sabria alguna forma de saber el número que se genera en el momento que introduzco la cabecera

Gracias de antemano
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

RE:Campo Autonumerico y dos tablas relacionadas

Publicado por Isaías Islas (5072 intervenciones) el 22/04/2004 19:31:35
Para EVITAR que alguien introduzca un registro en la cabecera, ANTES de que se termine la que esta en proceso de hacerlo, utilice TRANSACCIONES.

DECLARE @MyConsecutivo INT -- Para tomar el consecutivo
SET @MyConsecutivo = 0
BEGIN TRAN MyTransaccion
INSERT INTO MyTablaCabecera VALUES(.............VALORES..............)
SET @MyConsecutivo = @@IDENTITY
-- Verifico si no hubo error de introduccion de datos
IF @MyConsecutivo = 0 OR @MyConsecutivo IS NULL
BEGIN
SELECT 'ERROR, en la introduccion de datos'
ROLLBACK TRAN MyTransaccion
RETURN(0)
END
COMMIT TRAN MyTransaccion
SELECT 'Consecutivo generado', @MyConsecutivo

Espero le sirva

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