Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Edson Lopes

Trigger não é executada com insert com mais de um registro afetado

Recommended Posts

Tenho uma trigger que deve ser executada em insert, update e delete.

Quando executo um insert na tabela que provocará insersões de mais de um registro, a trigger só é executada no primeiro registro, deixando de executar os demais registros.

Se eu montar um insert que afete apenas um registro então a trigger faz a lição de casa.

 

Utilizo o sqlserver 2008 10.0.1600.

 

ALTER TRIGGER [dbo].[trg_atualiza_saldo_produto] ON [dbo].[produtos_mov]

FOR INSERT, UPDATE, DELETE

AS

BEGIN.........

 

 

INSERT INTO produtos_mov

( [fil_num] ,

[grupo_num] ,.......

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) A trigger insere na própria tabela alvo da trigger ?!

 

2) Não seria a falta da opção "for each row" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ela não insere na própria tabela alvo. A trigger está na tabela "Produtos_Mov" que por sua vez atualiza a tabela "produtos"

 

Onde devo inserir "for each row" ?

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

For each row funciona no Oracle e não aparece na definição do comando create trigger na biblioteca do sql server, o que acho um burrice da MS..

 

 

http://msdn.microsoft.com/pt-br/library/ms189799(SQL.100).aspx

 

 

Achei esse post mas não testei

 

http://social.msdn.microsoft.com/forums/pt-BR/520/thread/8dac1256-ea61-4ed9-ba43-f59898e99760/

 

 

Busquei

 

"for each row sql server trigger" no Google..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.