SQL Server - EVITAR REDUNDAR

 
Vista:

EVITAR REDUNDAR

Publicado por MIGUEL (3 intervenciones) el 23/02/2018 07:54:36
SEÑORES TENGO UNA DUDA Y NECESITO AYUDA..
TENGO EL SIGUIENTE DISPARADOR EN EL CUAL DESDE BD1 EN SU TABLA TRASPASO, INSETO EN BD2 EN SU TABLA TRASPASO,, PERO TAMBIEN NECESITO LO INVERSO, QUE DESDE BD2 INSERTE A BD1.. PERO EL ERROR LOGICO ES QUE CUANDO BD1 INSERTA EN BD2, ESTA A SU VEZ AL SER INSERTADA, DISAPARA A BD1 Y AHI ESTA MI ERROR, BD1 AL SER INSERTADA, DISPARA A BD2 ........ NECESITO DECIRLE QUE SI EL FOLIO QUE VIENE DE LA OTRA TABLA YA EXISTE,, SE DETENGA....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
USE [BD1]
GO
/****** Object:  Trigger [dbo].[TR_ITRASPASOE_INSERT]    Script Date: 02/22/2018 23:53:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[TR_ITRASPASOE_INSERT] ON [dbo].[ITraspasoE]
 AFTER INSERT
AS
BEGIN
 
insert into BD2.dbo.ITraspasoE
(Folio, Block, serie, )
select  Folio, Block, serie, Sucursal,   from inserted
 
 
END
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 Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

EVITAR REDUNDAR

Publicado por Isaias (4558 intervenciones) el 23/02/2018 17:29:09
Miguel

Primero, los TRIGGERS no son para codificar la logica del negocio, eso deberias hacerlo mediante PROCEDIMENTOS ALMACENADOS.

Entiendo que tienes DOS bases y las dos, estan produciendo registros, mismos que quieres se reflejen en ambas base, ¿cierto?

En tu trigger puede validar si el registro que estas intentando insertar ya existe con un simple IF EXISTS (........)

¿Porque tienes DOS bases y deseas que sean iguales en tu tabla ITraspasoE?
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

EVITAR REDUNDAR

Publicado por MIGUEL QUINTERO (3 intervenciones) el 23/02/2018 21:05:40
ASI. ES.. QUIERO QUE MEDIANTE MI PROGRAMA PRINCIPAL DE INVENTARIOS QUE ES DESDE DONDE HAGO LAS INSERCIONES SE REFLEJE EN AMBAS BASES...
LA EMPRESA ES LA MISMA PERO ESTAMOS CAMBIANDO DE RAZÓN SOCIAL.. SOLO QUE NO VAMOS A TERMINAR ESTE CAMBIO HASTA EL 2019.
UNA EMPRESA SE LLAMA CITRICOS 1 Y LA OTRA SE LLAMA CITRICOS 2, PERO SON 2 BD INDEPENDIENTES.. EN LA EMPREA CITRICOS1 SOLO TENGO 1 ALMACEN EN LA EPRESA CITRICOS 2 TENGO 4 ALMACENES Y LOS TRASPASOS ENTRE LOS ALMACENES DE CITRICOS 2 NO HAY PROBLEMA. EL DETALLE ES CUANDO LOS TRASPASOS SON ENTRE LAS BD DIFERENTES..
DE ECHO YA LOGRE QUE SE HAGA UN TRASPASO. PERO CUANDO SOLO TENGO EL TRIGGER DE UNA A OTRA... PERO CUANDO LAS 2 TIENEN EL TRIGUER ES CUANDO ME CREA EL CIRCULO..
EL FIN DE ESTO, ES.... QUE LA PERSONA QUE APLICA EL TRASPASO DESDE LA EMPRSA 1, LE MANDE EL DOCUMENTO IMPRESO A FIRMAR A LA EMPRESA 2, Y DESPUES LA EMPRESA 2 PUEDA IMPRIMIR UN REPORTE DE LO QUE LE ENVIARON LOS DEMAS ALMACENES....
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: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

EVITAR REDUNDAR

Publicado por Isaias (4558 intervenciones) el 26/02/2018 19:05:59
Tu programa de inventarios, es hecho en casa o es comprado?

No escriba todo en MAYUSCULAS, tomese el tiempo de utlizar correctamente el teclado
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

EVITAR REDUNDAR

Publicado por MIGUEL QUINTERO (3 intervenciones) el 26/02/2018 20:07:11
Es Comprado.. No tengo el código fuente,

te comento que ahora intente por medio de un MERGE, y lo logre, el detalle es que no se como hacerlo para que se ejecute automáticamente,..

hoy le voy a calar por medio de IF EXIST,... solo que tengo apenas 2 mese manejando sql y no se la sintaxis.
en teoria
necesito un trigger que me ejecute el MERGE cada que se inserte un registo en cualquiera de las 2 bd. y otro que me actualice los registros cuando se cancele alguno ya existente,.

o bien un trigger que verifique si existe el registo en la bd... detenga la ejecucion.. y si no existe.. que lo inserte!!!
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: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

EVITAR REDUNDAR

Publicado por Isaias (4558 intervenciones) el 26/02/2018 23:21:38
Bueno, creo que vas por buen camino

MERGE, compara una TARGET y una SOURCE y dependiendo del resultado, hara el, INSERT, UPDATE o DELETE.

¿Cual es tu VERSION y EDICION de tu SQL Server?
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