SQL Server - Igual datos de una tabla con otra

 
Vista:

Igual datos de una tabla con otra

Publicado por Leonardo M (1 intervención) el 15/12/2008 21:22:33
Bueno, durante el desarrollo de una aplicación, me ha surgido la siguiente interrogante:

En una Base de Datos, tengo 2 tablas una master y otra cliente, ambas contienen los mismos campos, y necesito que estas se igualen, o sea, en caso q la tabla master tenga un nuevo registro, se haga un insert a la tabla cliente, si la tabla master tiene un registro actualizado (buscandolo x medio del ID), se actualice ese registro, y en caso q en la tabla cliente tenga un registro que no esta en la tabla master, se borre?

Esto se realizaría al presionar un botón dentro de la aplicación.

Espero que hayan comprendido mi duda
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
Imágen de perfil de roger

RE:Igual datos de una tabla con otra

Publicado por roger (173 intervenciones) el 16/12/2008 02:57:59
debes hacer un desencadenador en la tabla master, cuando hagas tu insert en la tabla, inserta tambien en clientes, y si se borra en la tabla master, haces lo mismo en clientes. Investiga sobre desencadenadores, creo que se declaran asi

create trigger [nombreDesencadenador] on master
after insert
as
/*LOGICA*/
espero que te 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

RE:Igual datos de una tabla con otra

Publicado por Mau (67 intervenciones) el 16/12/2008 03:32:23
Que tal, complementando la respuesta de Roger, esto es más o menos lo que tendrías que codificar:

create table maestro(id_cliente int not null);
create table detalle(id_cliente int not null);
go

create trigger trg_replica_detalle on maestro for insert,update,delete
as

delete det
from detalle det
join deleted d on d.id_cliente = det.id_cliente

insert into detalle (id_cliente)
select id_cliente
from inserted;
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:Igual datos de una tabla con otra

Publicado por Mau (67 intervenciones) el 16/12/2008 16:31:17
Se me pasó un detalle importante: nunca crees objetos en la base de datos MASTER, ya que ésta la ocupa SQL Server para todo su funcionamiento interno.

Toda la programación y creación de tablas debes hacerlo en alguna base de datos que tú hayas creado.
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:Igual datos de una tabla con otra

Publicado por Isaias (3308 intervenciones) el 16/12/2008 19:19:36
Hola Mau

Nuestro amigo Leonardo, no afirma que ha creado su tabla en la base MASTER, dice:

"En una Base de Datos, tengo 2 tablas una master y otra cliente"

Por lo que entiendo es que TODO INSERT que haga en la TABLA MASTER, la quiere tambien en la TABLA CLIENTE, entonces:

CREATE TRIGGER trg_ReplicaRegistros on MASTER
FOR INSERT
BEGIN
INSERT INTO CLIENTE
SELECT * FROM INSERTED
END

Esto deberia funcionar, si y solo si, que ambas tablas MASTER y CLIENTE, tuvieran la misma estructura, estuvieran en el mismo servidor, misma base y solo fuera para 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