Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Insert Id en dos Tablas

Estas en el tema de Insert Id en dos Tablas en el foro de SQL Server en Foros del Web. Como puedo insertar el mismo Id que son identity en dos tablas: Ejemplo TABLA 1 Calle Col Del TABLA2 m2sup m2const Tengo algo como esto ...
  #1 (permalink)  
Antiguo 18/02/2010, 19:43
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Insert Id en dos Tablas

Como puedo insertar el mismo Id que son identity en dos tablas:
Ejemplo
TABLA 1
Calle
Col
Del
TABLA2
m2sup
m2const

Tengo algo como esto
INSERT INTO InmUbi (Calle, col, del)
VALUE (@Calle, @col, @Del)

INSERT INTO inmDat (m2sup, m2const)
VALUE(@m2sup, @m2const)

lo que quiero es que al dar de alta un inmueble en este caso los datos de dirección se genera automaticamente un Id que es Identity.
en la tabla de datos de superficie
me de de alta el mismo Id

algunas lineas de ayuda
  #2 (permalink)  
Antiguo 19/02/2010, 01:29
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Respuesta: Insert Id en dos Tablas

No deberías tener que hacer algo como esto. Para el escenario que comentas, suena más lógico que el ID de la primera sea un Foreign Key en la segunda.
Pero si tienes que hacerlo, hazlo dentro de una transacción al menos...

Código:
--Realizar un Rollback en caso de error usando XACT_ABORT
--O mejor aún, implementa una rutina que controle los errores
SET XACT_ABORT ON;

DECLARE @LastId AS INT;
BEGIN TRANSACTION;

INSERT INTO InmUbi(Calle, col, del)
    VALUES(@Calle, @col, @Del);
    
SELECT @LastId = SCOPE_IDENTITY();

SET IDENTITY_INSERT dbo.inmDat ON;
INSERT INTO inmDat(Id, m2sup, m2const)
    VALUES(@LastId, @m2sup, @m2const);
SET IDENTITY_INSERT dbo.inmDat OFF;    
COMMIT TRANSACTION;
  #3 (permalink)  
Antiguo 19/02/2010, 08:49
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Insert Id en dos Tablas

Maestro (con respeto) muchas gracias

funciono muy bien

Etiquetas: dos, insert, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:20.