Trigger de delete no SQL Server

SQL Server

30/09/2003

Olá pessoal...
Por favor, estou precisando fazer um Trigger de delete no SQL Server. O problema é o seguinte:
1) Ao deletar registros na tab A, preciso pegar a chave e algumas informações do registro que será deletado.
2) Depois que eu tiver o registro a ser deletado irei passar os valores para algumas procedures que farão atualizações em outras tabelas.
3) O que tentei fazer, veja abaixo:

create trigger TR_ESTOQUE_TRANSACAO_ENTRADA_EXCLUIR on movimento_entrada_itens
INSTEAD OF DELETE

AS
declare @codmov int, @codprod int, @codmoviten int
select @codmov = cd_moventrada from movimento_entrada_itens
select @codprod = cd_produto from movimento_entrada_itens
select @codmoviten = cd_mov_entrada_itens from movimento_entrada_itens


EXEC sp_estoque_transacao_entrada_excluir @cod_movimento = @codmov,@cod_produto =@codprod
delete from movimento_entrada_itens where cd_mov_entrada_itens = @codmoviten
go



Obrigado. :?:


Cahic

Cahic

Curtidas 0

Respostas

Anderson_dpa

Anderson_dpa

30/09/2003

Cahic toda vez que vc executa um delete ou um insert em uma tabela
o SQL Server cria automaticamente uma tabela chamada DELETED e INSERTED, essa tabela é uma cópia exata da tabela que vc está executando o comando delete ou insert, logo, apenas basta vc referenciar a tabela deleted. Ex.

Create Trigger DELETA_TAB1 on Table1
For Delete

If Exists(Select * from tab2 where cod1=(select cod1 from deleted))
begin
delete tab2 where cod1=(select cod1 from deleted)
end

If Exists(Select * from tab3 where cod1=(select cod1 from deleted))
begin
delete tab3 where cod1=(select cod1 from deleted)
end

If @@Error > 0
Begin
RaiseError(´Não foi possível excluir os dados.´,10,1)
Rollback Tran
end

Commit Tran


Espero ter contribuído

Grande Abraço e Boa sorte
Anderson...

andersondpa@hotmail.com


GOSTEI 0
Cahic

Cahic

30/09/2003

Ok, Anderson valeu...vou tentar...
Obrigado.


GOSTEI 0
Anderson_dpa

Anderson_dpa

30/09/2003

Me avisa se vc conseguiu ou não !!!

Anderson...


GOSTEI 0
POSTAR