Trigger executar para todos os registros de um UPDATE
24/06/2006
0
Estou executando um update da seguinte forma:
update clientes set estado = ´SP´
where estado = ´sp´
Mas essa tabela contem um triggers que grava um log.
E eu qeria qe isso fosse registrado por registro. Mas só registra o ultimo registro alterado.
Ou seja só dispara a trigger uma unica vez no update que seria para ´n´ registro.
Imagino que deve conter alguma coisa para ser setada.
SE mais Obrigado pessoal
T+
Dimmy :roll:
update clientes set estado = ´SP´
where estado = ´sp´
Mas essa tabela contem um triggers que grava um log.
E eu qeria qe isso fosse registrado por registro. Mas só registra o ultimo registro alterado.
Ou seja só dispara a trigger uma unica vez no update que seria para ´n´ registro.
Imagino que deve conter alguma coisa para ser setada.
SE mais Obrigado pessoal
T+
Dimmy :roll:
Dimmy
Curtir tópico
+ 0
Responder
Posts
29/06/2006
Emerson Nascimento
você precisa trabalhar todos os registros na trigger. para isso, crie um cursor local. nesse cursor você deve trabalhar com a tabela [i:be2534cc27]inserted[/i:be2534cc27], que é uma tabela virtual (também local) do sql server pra trabalho com inserções e/ou atualizaçoes de dados.
seria algo assim:
seria algo assim:
declare cursor_atualizados cursor local for select lista_de_campos from inserted -- aqui é inserted mesmo. -- ela é uma tabela especial do sql server -- abre o cursor open cursor_atualizados -- pega o primeiro registro fetch next from cursor_atualizados into lista_de_variáveis -- deve ser igual a lista de campos -- esse LOOP fará a manipulação de todos os registros -- que sofreram alteração. ele irá executar enquanto seja -- possível passar para um próximo registro do cursor while @@FETCH_STATUS = 0 begin -- *********************************** -- aqui vc deve gerar o seu log, -- trabalhando sempre com as variáveis -- *********************************** -- pega o próximo registro fetch next from cursor_atualizados into lista_de_variáveis end -- fecha o cursor close cursor_atualizados
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)