Tenho um banco de dados com as tabelas normalizadas e outra aplicação antiga com um banco não normalizado.
Preciso criar uma TRIGGER para ao ser inserido ou atualizado um registro em uma tabela do banco de origem
(normalizado) eu possa inserir alguns dados desse registro no meu banco de destino (não normalizado - banco TANK).
Quero solicitar a ajuda dos colegas para me orientar se existe alguma forma melhor de fazer isso ou
se estou no caminho certo.
A principio criei um Trigger em que testo se há alguma atualização dos campos e se não houver realizo um
INSERT na tabela do banco TANK.
CREATE TRIGGER [dbo].[TriggerUpdateInsert] ON [dbo].[TABELA_ORIGEM]
AFTER INSERT, UPDATE
AS
DECLARE @QtdeRows INT
BEGIN
UPDATE [BANCO_TANK]..[TABELA_DESTINO]
SET CAMPO_1 = TABELA_ORIGEM.CAMPO_1
WHERE
TABELA_ORIGEM.CAMPO_CHAVE = TABELA_DESTINO.CAMPO_CHAVE
SET @QtdeRows = @@ROWCOUNT
UPDATE [BANCO_TANK]..[TABELA_DESTINO]
SET CAMPO_2 = TABELA_ORIGEM.CAMPO_2
WHERE
TABELA_ORIGEM.CAMPO_CHAVE = TABELA_DESTINO.CAMPO_CHAVE
SET @QtdeRows = @@ROWCOUNT
-- Se UPDATE não encontrou registro para ser atualizado, insere registro na tabela tank.
IF ( @QtdeRows = 0 )
BEGIN
INSERT INTO [BANCO_TANK]..[TABELA_DESTINO]
SELECT
CAMPO_1,
CAMPO_2,
FROM TABELA_ORIGEM1
LEFT JOIN TABELA_ORIGEM2 ON
TABELA_ORIGEM1.CAMPO_CHAVE = TABELA_ORIGEM2.CAMPO_CHAVE
END