hudsmar Postado Agosto 12, 2011 Denunciar Share Postado Agosto 12, 2011 Boa tarde.Estou com um probleminha, não consigo rodar essa trigger no ibconsole 6.5CREATE TRIGGER Apaga_Medidas_Pagamentos for AlunoFOR DELETEAS DELETE Medidas FROM Medidas m INNER JOIN Deleted d ON m.COD_ALU = d.COD_ALU DELETE Pagamento FROM Pagamento p INNER JOIN Deleted d ON p.COD_ALU = d.COD_ALU/**********************************************************************/GO/**********************************************************************/CREATE TRIGGER Novo_VencimentoON PagamentoFOR INSERTAS DECLARE @DATA DateTime, @DATANOVA DateTime SET @DATA = (Select A.DATA_VENC FROM Aluno A INNER JOIN Inserted i ON A.COD_ALU = i.COD_ALU) SET @DATANOVA = Dateadd(m,1,@DATA) UPDATE Aluno SET DATA_VENC = @DATANOVA FROM Aluno a INNER JOIN Inserted i ON a.COD_ALU = i.COD_ALU/**********************************************************************/GO/**********************************************************************/CREATE TRIGGER TotMensal_DtVencON AlunoFOR INSERTAS DECLARE @1 Decimal(12,2), @2 Decimal(12,2), @3 Decimal(12,2), @4 Decimal(12,2), @5 Decimal(12,2), @6 Decimal(12,2), @CODIGO int, @TOTAL Decimal(12,2) SET @CODIGO =(SELECT a.COD_ALU FROM Aluno a, Inserted i WHERE a.COD_ALU = i.COD_ALU) SET @1= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD1 = M.COD_MOD AND COD_ALU = @CODIGO) SET @2= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD2 = M.COD_MOD AND COD_ALU = @CODIGO) SET @3= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD3 = M.COD_MOD AND COD_ALU = @CODIGO) SET @4= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD4 = M.COD_MOD AND COD_ALU = @CODIGO) SET @5= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD5 = M.COD_MOD AND COD_ALU = @CODIGO) SET @6= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD6 = M.COD_MOD AND COD_ALU = @CODIGO) IF @1 IS Null Set @1 = 0 IF @2 IS Null Set @2 = 0 IF @3 IS Null Set @3 = 0 IF @4 IS Null Set @4 = 0 IF @5 Is Null Set @5 = 0 IF @6 Is Null Set @6 = 0 SET @TOTAL = (@1+@2+@3+@4+@5+@6) UPDATE Aluno SET VLR_DEVIDO = @TOTAL, DATA_VENC = a.DATA_CAD FROM Aluno a, Inserted i WHERE i.COD_ALU = a.COD_ALU/**********************************************************************/GO/**********************************************************************/CREATE TRIGGER Altera_MensalidadeON AlunoFOR UPDATEAS DECLARE @1 Decimal(12,2), @2 Decimal(12,2), @3 Decimal(12,2), @4 Decimal(12,2), @5 Decimal(12,2), @6 Decimal(12,2), @CODIGO int, @TOTAL Decimal(12,2) SET @CODIGO =(SELECT a.COD_ALU FROM Aluno a, Inserted i WHERE a.COD_ALU = i.COD_ALU) SET @1= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD1 = M.COD_MOD AND COD_ALU = @CODIGO) SET @2= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD2 = M.COD_MOD AND COD_ALU = @CODIGO) SET @3= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD3 = M.COD_MOD AND COD_ALU = @CODIGO) SET @4= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD4 = M.COD_MOD AND COD_ALU = @CODIGO) SET @5= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD5 = M.COD_MOD AND COD_ALU = @CODIGO) SET @6= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD6 = M.COD_MOD AND COD_ALU = @CODIGO) IF @1 IS Null Set @1 = 0 IF @2 IS Null Set @2 = 0 IF @3 IS Null Set @3 = 0 IF @4 IS Null Set @4 = 0 IF @5 Is Null Set @5 = 0 IF @6 Is Null Set @6 = 0 SET @TOTAL = (@1+@2+@3+@4+@5+@6) UPDATE Aluno SET VLR_DEVIDO = @TOTAL FROM Aluno a INNER JOIN Inserted i ON a.COD_ALU = i.COD_ALUsó falta fazer rodas isso para meu programa funcionar..se alguém poder me ajudar.. agradeçerria muito Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
hudsmar
Boa tarde.
Estou com um probleminha, não consigo rodar essa trigger no ibconsole 6.5
CREATE TRIGGER Apaga_Medidas_Pagamentos for Aluno
FOR DELETE
AS
DELETE Medidas
FROM Medidas m INNER JOIN Deleted d
ON m.COD_ALU = d.COD_ALU
DELETE Pagamento
FROM Pagamento p INNER JOIN Deleted d
ON p.COD_ALU = d.COD_ALU
/**********************************************************************/
GO
/**********************************************************************/
CREATE TRIGGER Novo_Vencimento
ON Pagamento
FOR INSERT
AS
DECLARE @DATA DateTime,
@DATANOVA DateTime
SET @DATA = (Select A.DATA_VENC FROM Aluno A INNER JOIN Inserted i ON A.COD_ALU = i.COD_ALU)
SET @DATANOVA = Dateadd(m,1,@DATA)
UPDATE Aluno
SET DATA_VENC = @DATANOVA
FROM Aluno a INNER JOIN Inserted i
ON a.COD_ALU = i.COD_ALU
/**********************************************************************/
GO
/**********************************************************************/
CREATE TRIGGER TotMensal_DtVenc
ON Aluno
FOR INSERT
AS
DECLARE @1 Decimal(12,2), @2 Decimal(12,2), @3 Decimal(12,2), @4 Decimal(12,2), @5 Decimal(12,2),
@6 Decimal(12,2), @CODIGO int, @TOTAL Decimal(12,2)
SET @CODIGO =(SELECT a.COD_ALU FROM Aluno a, Inserted i WHERE a.COD_ALU = i.COD_ALU)
SET @1= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD1 = M.COD_MOD AND COD_ALU = @CODIGO)
SET @2= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD2 = M.COD_MOD AND COD_ALU = @CODIGO)
SET @3= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD3 = M.COD_MOD AND COD_ALU = @CODIGO)
SET @4= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD4 = M.COD_MOD AND COD_ALU = @CODIGO)
SET @5= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD5 = M.COD_MOD AND COD_ALU = @CODIGO)
SET @6= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD6 = M.COD_MOD AND COD_ALU = @CODIGO)
IF @1 IS Null Set @1 = 0
IF @2 IS Null Set @2 = 0
IF @3 IS Null Set @3 = 0
IF @4 IS Null Set @4 = 0
IF @5 Is Null Set @5 = 0
IF @6 Is Null Set @6 = 0
SET @TOTAL = (@1+@2+@3+@4+@5+@6)
UPDATE Aluno
SET VLR_DEVIDO = @TOTAL,
DATA_VENC = a.DATA_CAD
FROM Aluno a, Inserted i
WHERE i.COD_ALU = a.COD_ALU
/**********************************************************************/
GO
/**********************************************************************/
CREATE TRIGGER Altera_Mensalidade
ON Aluno
FOR UPDATE
AS
DECLARE @1 Decimal(12,2), @2 Decimal(12,2), @3 Decimal(12,2), @4 Decimal(12,2), @5 Decimal(12,2),
@6 Decimal(12,2), @CODIGO int, @TOTAL Decimal(12,2)
SET @CODIGO =(SELECT a.COD_ALU FROM Aluno a, Inserted i WHERE a.COD_ALU = i.COD_ALU)
SET @1= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD1 = M.COD_MOD AND COD_ALU = @CODIGO)
SET @2= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD2 = M.COD_MOD AND COD_ALU = @CODIGO)
SET @3= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD3 = M.COD_MOD AND COD_ALU = @CODIGO)
SET @4= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD4 = M.COD_MOD AND COD_ALU = @CODIGO)
SET @5= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD5 = M.COD_MOD AND COD_ALU = @CODIGO)
SET @6= (SELECT M.MENSALIDADE FROM ALUNO A, MODALIDADE M WHERE A.COD_MOD6 = M.COD_MOD AND COD_ALU = @CODIGO)
IF @1 IS Null Set @1 = 0
IF @2 IS Null Set @2 = 0
IF @3 IS Null Set @3 = 0
IF @4 IS Null Set @4 = 0
IF @5 Is Null Set @5 = 0
IF @6 Is Null Set @6 = 0
SET @TOTAL = (@1+@2+@3+@4+@5+@6)
UPDATE Aluno
SET VLR_DEVIDO = @TOTAL
FROM Aluno a INNER JOIN Inserted i
ON a.COD_ALU = i.COD_ALU
só falta fazer rodas isso para meu programa funcionar..
se alguém poder me ajudar.. agradeçerria muito
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.