Trigger de delete no SQL Server
30/09/2003
0
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
Curtir tópico
+ 0
Responder
Posts
20/10/2003
Anderson_dpa
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)