SQL - Insertar en Dos Tablas

 
Vista:

Insertar en Dos Tablas

Publicado por Evelio Lezama (15 intervenciones) el 11/12/2006 16:36:59
Tengo Dos tablas que tienen un Indice de uno a uno, es decir que debe existir el mismo indice en ambas tablas.
¿Como hago para insertar datos en las dos tablas al mismo tiempo?, y si no es así (porque me parece que no se puede utilizar el Insert para dos tablas) que debo hacer?

Saludos
Evelio Lezama
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
sin imagen de perfil

RE:Insertar en Dos Tablas

Publicado por Liliana (426 intervenciones) el 11/12/2006 18:58:00
Hola,
No entiendo tu problema, tal vez con el ejemplo...
Insert para dos tablas es imposible.

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

RE:Insertar en Dos Tablas

Publicado por Evelio Lezama (15 intervenciones) el 11/12/2006 19:07:54
Se que el Insert no lo puedo utilizar.
Ahora.

Tengo dos tablas que se relacionan entre si con una clave exactamente igual por ejemplo:

Tabla1
Codigo (Clave)
Descripción

Tabla2
Codigo (Clave)
Dato2
Dato3
Dato4

Cada registro de la primera tabla debe tener un registro relacionado en la segunda tabla.

¿Cómo debo insertar los datos?

Saludos
Evelio A. Lezama
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
sin imagen de perfil

RE:Insertar en Dos Tablas

Publicado por Liliana (426 intervenciones) el 11/12/2006 19:17:32
Evelio,
si los datos para insertar en ambas tablas te llegan desde una aplicación, forzaría que se ingresen en una misma pantalla por ejemplo.
Ahora, cómo estás manteniendo esa integridad? Triggers o código?
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

RE:Insertar en Dos Tablas

Publicado por Evelio Lezama (15 intervenciones) el 11/12/2006 19:22:16
Están relacionadas en la base de datos de SQL-Server...

Voy a insertar los datos desde una misma pantalla. (A futuro)
Por ahora estoy haciendo una migración de datos desde Access hacia SQL-Server 2000.

Ya transferí los datos a unas tablas temporales de SQL que no están relacionadas pero tengo el dilema de coo cargarlas a las que ya están relacionadas y como hacer cuando tenga que crear el módulo en Visual Basic para cargarlos dede el Aplicativo...

Nota:
Hasta ahora no había trabajado con tablas con este tipo de relación, siempre había trabajado con relación de "uno" a "muchos"

Gracias
Liliana

Saludos
Evelio A. Lezama
Software Architect
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
sin imagen de perfil

RE:Insertar en Dos Tablas

Publicado por Liliana (426 intervenciones) el 11/12/2006 19:33:58
Ok, pero con triggers?
Si la respuesta es NO, entonces no hay problema, lo controlás en la aplicación.
Si la respuesta es SI, entonces deberías tener un trigger de insert solo para la segunda tabla en que agregues la información-
En cuanto a la migración, podés deshabilitar este trigger hasta tanto tener las tablas con la informaciòn original.
Espero que te sirva,
Liliana,.
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

RE:Insertar en Dos Tablas

Publicado por Evelio Lezama (15 intervenciones) el 11/12/2006 20:13:15
Lo siento.
No entendí muy bien, porque no he trabajado con triggers, pero voy a investigar un poco sobre eso...
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
sin imagen de perfil

RE:Insertar en Dos Tablas

Publicado por Liliana (426 intervenciones) el 12/12/2006 12:18:44
Respondiendo a tu correo:

El problema es que tengo Dos tablas relacionadas entre si por una clave que las relaciona 1 a 1.

Table1
Cod (Clave)
Des

Table2
Cod (Clave)
Des
Campo3
Campo4

Cada vez que inserte en la tabla 1 debo insertar en la tabla 2 porque así lo requiere el índice…

¿Cómo hacer esto?
-------------------------------------------
Te paso un ejemplo de stored procedure:

CREATE PROC InsertDosTablas (@Cod smallint, @Des1 varchar(100), @Des2 varchar(100), @Campo3 varchar(100), @Campo4 varchar(100))
AS

-- acá validaciones necesarias

INSERT Table1 (Cod, Des) VALUES (@Cod, @Des1)

INSERT Table2 (Cod, Des, Campo3, Campo4) VALUES (@Cod, @Des2, @Campo3, @Campo4)

GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Insertar en Dos Tablas

Publicado por Evelio A. Lezama (15 intervenciones) el 12/12/2006 20:29:39
Gracias Liliana

He aprendido algo nuevo para mi y sumamente importante.

Pude notar además que para que funcione el procedimiento debo colocar primero el insert de la ultima tabla de la clave y luego el insert de la primera.

Muchas gracias Liliana

Lic. Evelio Lezama
Software Architect
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

RE:Insertar en Dos Tablas

Publicado por Marco (1 intervención) el 25/09/2011 14:28:15
Buenaza la respuesta.
a mi no me salia, era porque habia puesto el GO en mal lugar:

INSERT Table1 (Cod, Des) VALUES (@Cod, @Des1)
GO
INSERT Table2 (Cod, Des, Campo3, Campo4) VALUES (@Cod, @Des2, @Campo3, @Campo4)
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

RE:Insertar en Dos Tablas

Publicado por Oscar Jamir Ortega (1 intervención) el 04/05/2018 14:17:17
Buenas Tengo el mismo error
pero estas son mis tablas

Tabla Prestamo
(
cod_Prestamo primary key bigint ,
id_Usuario bigint,
fecini_Prestamo date,
fpDev_Prestamo date,
obse_Prestamo varchar(300),
esta_Prestamo varchar (30),
id_Empleado bigint
)

Tabla_Devolucion
cod_devolucion bigint,
fdev_devolucion date,
obse_devolucion varchar(30),
cod_Prestamo bigint




CREATE PROCEDURE Registrar_Devolucion
@cod_devolucion bigint,
@fdev_devolucion date,
@obse_devolucion varchar(30),
@cod_Prestamo bigint,
@esta_Prestamo varchar (30)
as


insert into TABLA_DEVOLUCION values (@cod_devolucion,@fdev_devolucion,@obse_devolucion,@cod_Prestamo)

insert into TABLA_PRESTAMO values(@esta_Prestamo)
GO





El nombre de columna o los valores especificados no corresponden a la definición de la tabla.
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

RE:Insertar en Dos Tablas

Publicado por efrain (1 intervención) el 24/04/2012 18:16:55
es exactamente,,, el mismo problema que se me presenta a mi... pero mi aplicacion esta en VB.NET
¿como realizar esta accion?

ejemplo de lo que yo ago:

sql= insert into nombre_tabla(campos) values (texboxes....)

sql= insert into nombre_tabla(campos) values (texboxes....)

y no funciona que paza ayudaaaaaaaa.
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

RE:Insertar en Dos Tablas

Publicado por Camimaster (1 intervención) el 14/05/2012 17:54:00
Simplemente no le funciona porque está reasignando la variable sql
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
sin imagen de perfil

Insertar en Dos Tablas

Publicado por Yovany (1 intervención) el 19/04/2020 21:09:39
esta seria la mejor forma creando un store prcedure
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Yovany Gonzalez>
-- Create date: <Insert register tblTransacion and tblDetalles>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE SP_Insert_Transaction
	--Parameter
	@idtransacion INT OUTPUT,
	@fecha DATETIME,
	@idcliente INT,
	@saldo FLOAT,
	@iddetalle INT,
	@idoperacion INT,
	@valor FLOAT
AS
BEGIN
	SET NOCOUNT ON;
    INSERT INTO tblTransacion(idtransacion,fecha,idcliente,saldo)
	VALUES(@idtransacion,@fecha,@idcliente,@saldo)
	INSERT INTO tblDetalleTransacion(iddetalle,idtransacion,idoperacion,valor)
	VALUES(@iddetalle,@idtransacion,@idoperacion,@valor)
END
GO
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 Francisco
Val: 150
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Insertar en Dos Tablas

Publicado por Francisco (62 intervenciones) el 20/04/2020 17:18:49
Fallaria porque falta punto y coma entre los dos INSERT
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
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Insertar en Dos Tablas

Publicado por Isaias (1921 intervenciones) el 03/11/2021 16:40:23
En un SP no hace falta el punto y coma, que yo sepa, lo que si metería seria una transacción IMPLICITA (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

Insertar en Dos Tablas

Publicado por Joseph C hichipe (1 intervención) el 03/11/2021 04:19:42
saludo. como ejecutaría el procedimiento para insertar los datos en las dos tablas
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