Trigger de delete no SQL Server
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. :?:
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
Curtidas 0
Respostas
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
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
30/09/2003
Ok, Anderson valeu...vou tentar...
Obrigado.
Obrigado.
GOSTEI 0
Anderson_dpa
30/09/2003
Me avisa se vc conseguiu ou não !!!
Anderson...
Anderson...
GOSTEI 0