Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola, ja começo pedindo desculpa por mais esse tópico, mas eu realmente não consegui achar nada que me ajudasse.
Eu preciso criar uma trigger ou qualquer outro procedimento, que me permite incluir todos os dados da tabela principal na tabela histórico a cada alteração/inserção.
Está é a trigger que tenho, ela só me retorna o dado alterado/inserido.
FOR UPDATE, INSERT
AS
BEGIN
SET NOCOUNT ON
INSERT INTO tb_historico (id_beneficio, habitantes, ano, dh_update)
SELECT id_beneficio, habitantes, ano, GETDATE()
FROM INSERTED
END
O dados na minha tabela são os seguintes:
id habitante ano1 10000 20192 20000 20193 30000 2019Alterei a primeira linha
id habitante ano**1 50000 2019**2 20000 20193 30000 2019preciso que além do dado alterado, me retorne os dados que não sofreram nenhuma modificação
id habitante ano 1 50000 20192 20000 20193 30000 2019Hoje o retorno dela seria apenas o dado alterado.
id habitante ano1 50000 2019Oi Jack, dei uma lida nos arquivos, mas não achei que me ajudou, desculpa minha ignorância.
Mais ainda continuo meio perdida em como fazer.
Eu mencionei a trigger, mas não necessariamente, precisa ser ela. Até porque não sei se a trigger permite isso.
Eu preciso criar uma copia fiei da minha tabela principal, na minha histórico.
Vai ser incluída na histórico o que não foi alterado ?
----------------------------------------------------------------------------------------
Se poderia , criar a historico zerada
a trigger seria algo assim
update tabelalog where ....
se linhas_afetadas = 0 então
insere tabelalog
se faz inicialmente um insert na tabelalog baseada na tabela (insert into select)
habiita a triggerOlá Mota, desde ja agradeço a atenção.
Sim na historico, tem que vir tudo. Minha Tabela pai tem 8 linhas, essas 8 linhas tem que ir pra tabela histórico.
Mesmo que apenas 1 linha tenha sofrido alteração.
Eu fiz algo assim.
Porem ainda me retorna apenas 1 linha.
FOR UPDATE, INSERT
AS
BEGIN
declare @historico table (
id int,
habitantes varchar(200),
ano int)
INSERT INTO @historico (id, habitantes, ano)
SELECT id_custo_beneficio, habitantes, ano
FROM inserted
insert into tb_historico (id_custo_beneficio, habitantes, ano, dh_update)
select id, habitantes, ano, getdate() from @historicoNão faz sentido um log de não alterados.
Se poderua manter um espelho da tabela por
Update
se não existe
insert
Veja se um deste vai lhe ajudar
AJUDA 01 AJUDA 02 AJUDA 03
AJUDA 05 FÓRUM IMASTERS
Acredito que este vai lhe ajudar melhor
AJUDA 07