EXERCÍCIOS Trigger¶
- Neste exercício vamos criar triggers…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 CREATE TABLE FUNCIONARIOS ( NOME VARCHAR(10), SALARIO MONEY ) SELECT * FROM FUNCIONARIOS SELECT * FROM auditFuncionarios INSERT FUNCIONARIOS (NOME,SALARIO) VALUES ('PEDRO',1000) DELETE FROM FUNCIONARIOS WHERE NOME = 'PEDRO' UPDATE FUNCIONARIOS SET SALARIO = SALARIO * 10 CREATE TRIGGER TGR_SALARIO ON FUNCIONARIOS FOR INSERT AS INSERT auditFuncionarios SELECT *, GETDATE(),'INSERT' FROM inserted alter TRIGGER TGR_SALARIO_DEL ON FUNCIONARIOS FOR DELETE AS INSERT auditFuncionarios SELECT *, GETDATE(),'DELETE' FROM deleted create TRIGGER TGR_SALARIO_up ON FUNCIONARIOS FOR UPDATE AS INSERT auditFuncionarios SELECT *, GETDATE(),'UPD_VELHO' FROM deleted INSERT auditFuncionarios SELECT *, GETDATE(),'UPD_NOVO' FROM INSERTED
- Neste exercício vamos criar triggers…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 SELECT * FROM dbo.ALUNOS SELECT * FROM dbo.MATRICULA ALTER TABLE dbo.ALUNOS ADD CURSO CHAR(3) CREATE TRIGGER TGR_MATRICULA_ALUNO ON ALUNOS FOR INSERT AS BEGIN DECLARE @MATRICULAALUNO INT, @CODIGOCURSO VARCHAR(3) SET @MATRICULAALUNO = (SELECT MATRICULA FROM INSERTED) SET @CODIGOCURSO = (SELECT CURSO FROM INSERTED) INSERT MATRICULA ( MATRICULA, CURSO, MATERIA, PROFESSOR, PERLETIVO ) SELECT @MATRICULAALUNO AS MATRICULA, @CODIGOCURSO, SIGLA,PROFESSOR, YEAR(GETDATE()) AS PERLETIVO FROM MATERIAS WHERE CURSO = @CODIGOCURSO END EXEC sp_MatriculaAluno @NOMEALUNO = 'José', -- varchar(50) @CURSOALUNO = 'SIS' -- varchar(50) CREATE PROCEDURE sp_MatriculaAluno ( @NOMEALUNO VARCHAR(50), @CURSOALUNO VARCHAR(50) ) AS BEGIN INSERT dbo.ALUNOS ( NOME,CURSO ) VALUES (@NOMEALUNO,@CURSOALUNO) END;