Aguardo....
Begin transaction nomequalquer
depois de um rollback nomequalquer
Abs.
"sara" <sa...@discussions.microsoft.com> escreveu na mensagem
news:E2F8922D-F9AA-43A0...@microsoft.com...
"sara" escreveu:
CREATE TRIGGER ola ON [dbo].[AGEMP]
for INSERT
AS
declare @cgc_bom varchar(20),@cod_emp varchar(15)
select @cgc_bom = cgc,@cod_emp = cod_emp from inserted
set @cgc_bom = replace(@cgc_bom,'-','')
set @cgc_bom = replace(@cgc_bom,'.','')
set @cgc_bom = replace(@cgc_bom,'/','')
set @cgc_bom = replace(@cgc_bom,' ','')
-- marcar o cliente que esta seno inserido duplicado pelo CPF e que tenha
codigo diferente
if exists(select inserted.cod_emp from inserted,agemp where inserted.cgc =
agemp.cgc and inserted.cod_emp <> agemp.cod_emp)
begin
update agemp set verificar = 'deletar' from agemp,inserted where
agemp.cod_emp = inserted.cod_emp
DECLARE @TESTE1 VARCHAR(50)
set @teste1= (select top 1 hostname from MASTER..sysprocesses where
loginame = system_user)
if not exists (select cpf from aux_ind
where hostname = @TESTE1)
begin
declare @teste varchar(50),@mensagem varchar(100),@cpf varchar(20),@qtde
VARCHAR (7)
--select @QTDE = (SELECT QTDE FROM MASTER..TB_UNIAO_SERVERS)
set @cpf = (select top 1 INSERTED.cgc from inserted )
-- minha intenção aqui é que no rollback tran não seja disfeito essa
inserção.
begin tran salvar
insert into aux_ind (CPF,Hostname) values(@cpf ,@teste1)
commit tran salvar
set @MENSAGEM = ' ATENÇÃO, CPF/CNPJ '+@cpf+' JÁ CADASTRADO NA BASE
'+@qtde+' VEZES/ POSSIVEL VENDA INDEVIDA'
-- transação desfeita
RAISERROR (@MENSAGEM,16,1)
ROLLBACK TRANSACTION
end
end
ELSE
-- Verificar vendas indevidas na base atual comparando com uma base completa
de vendas
if exists(select s.matchcode from master..tb_uniao_servers s where
@cgc_bom = s.matchcode)
begin
update agemp set verificar = 'indevida' from agemp,inserted where
agemp.cod_emp = inserted.cod_emp
DECLARE @TESTE3 VARCHAR(50)
set @teste3= (select top 1 hostname from MASTER..sysprocesses where
loginame = system_user)
if not exists (select cpf from aux_ind
where hostname = @TESTE3)
begin
declare @teste2 varchar(50),@mensagem2 varchar(100),@cpf2
varchar(20),@qtde2 VARCHAR (7)
--select @QTDE2 = (SELECT QTDE FROM MASTER..TB_UNIAO_SERVERS)
set @cpf2 = (select top 1 INSERTED.cgc from inserted )
begin tran salvar1
insert into aux_ind (cpf,hostname) values (@cpf2,@teste3)
commit tran salvar1
set @MENSAGEM2 = ' ATENÇÃO, CPF/CNPJ .........'+@cpf2+' JÁ CADASTRADO
NA BASE '+@qtde2+' VEZES/ POSSIVEL VENDA INDEVIDA'
RAISERROR (@MENSAGEM2,16,1)
ROLLBACK TRANSACTION
end
END