Usuário com melhor resposta
Trigger para atualizar registros

Pergunta
-
Boa tarde!
Sei que essa dúvida deve ser muito boba; mas gostaria da ajuda de vocês sendo que nunca trabalhei com triggers.
Estou precisando desenvolver uma trigger que ao atualizar uma tabela ela atualize registros de outra tabela.
Seria basicamente assim:
Na tabela de funcionários eu possuo o campo CPF e STATUS
porém quando houvesse uma atualização desses campos na tabela de funcionários a tabela de histórico seria atualizada esses dois campos também
Alguém poderia me ajudar?
Respostas
-
Deleted
- Marcado como Resposta carine.couto sexta-feira, 2 de dezembro de 2016 16:40
- Não Marcado como Resposta carine.couto terça-feira, 3 de janeiro de 2017 16:28
- Marcado como Resposta carine.couto terça-feira, 3 de janeiro de 2017 16:29
Todas as Respostas
-
-
- como se relacionam as tabelas de funcionários e de histórico? - Através do campo Matricula
- qual o nome correto das tabelas? - Funcionários e Histórico
- como será a atualização da tabela histórico: incluir nova linha para cada coluna alterada ou atualizar linha já existente? - Apenas vai atualizar o campo CPF e Status da tabela de histórico
- é para registrar na tabela de histórico somente o novo valor ou deve-se registrar o anterior e o novo valor? - Apenas atualizar o campo CPF e STATUS quando houver atualização na tabela de funcionários.
Através do seu esboço tentei montar algo mais nao funcionou.
Poderia me ajudar novamente?Estou dando uma lida no material e tentando montar.
Creio que deve ser bem simples, mas pela falta de conhecimento se torna complicada.:(-- código #1 CREATE TRIGGER on Funcionário after update as begin -- verifica se há linhas para processar declare @NL tinyint, @MATRICULA INT, @STATTUS CHAR(1); set @NL= (SELECT Count(*) from (SELECT top (2) * from INSERTED) as I); IF @NL = 0 return; -- verifica se o comando que ativou o gatilho altera as colunas CPF e/ou STATUS IF not UPDATE(CPF) and not UPDATE(STATUS) Select @MATRICULA= MATR, @STATTUS=STATTUS From Inserted return; -- atualiza tabela de histórico UPDATE historico SET cpf = @CPF, STATUS_=@STATUS WHERE MATR= @MATRICULA end; go
- como se relacionam as tabelas de funcionários e de histórico? - Através do campo Matricula
-
Carine,
Recomendo remover as linhas que correspondem ao comando Return, poderá este tipo de implemantação é obrigatória em funções e somente em procedures que retornam valores inteiros.
No caso do uso de trigger isso não é necessário.
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
-
Deleted
- Marcado como Resposta carine.couto sexta-feira, 2 de dezembro de 2016 16:40
- Não Marcado como Resposta carine.couto terça-feira, 3 de janeiro de 2017 16:28
- Marcado como Resposta carine.couto terça-feira, 3 de janeiro de 2017 16:29
-
-
-