master
syneffort 3 years ago
parent 04848c8c52
commit 082edbbeca
  1. 22
      trigger_ddl.sql
  2. 48
      trigger_dml.sql

@ -0,0 +1,22 @@
USE Study
GO
-- 트리거 생성
CREATE TRIGGER ROLLBACK_TRIGGER
ON DATABASE
FOR DROP_TABLE
AS
BEGIN
PRINT('DDL trigger: rollback')
ROLLBACK TRANSACTION
END
-- 테스트
DROP TABLE EMPLOYEE
SELECT * FROM EMPLOYEE

@ -0,0 +1,48 @@
USE Study
GO
-- AFTER(FOR) 트리거 생성
CREATE TRIGGER NEW_EMP_SAL
ON EMPLOYEE
FOR INSERT
AS
BEGIN
PRINT('NEW_EMP_SAL Trigger is invoked.')
SELECT * FROM inserted
UPDATE EMPLOYEE SET SALARY = 100
FROM inserted, EMPLOYEE
WHERE inserted.ENO = EMPLOYEE.ENO
PRINT('Salary of new comer becomes 100')
SELECT * FROM inserted, EMPLOYEE WHERE inserted.ENO = EMPLOYEE.ENO
END
-- 테스트
INSERT INTO EMPLOYEE(ENO, ENAME) VALUES(300, 'newcommer')
-- INSTEAD OF 트리거 생성
CREATE TRIGGER NO_UPDATE
ON DEPARTMENT
INSTEAD OF UPDATE
AS
BEGIN
PRINT('Update for the DEPARTMENT is prevented')
END
-- 테스트
SELECT * FROM DEPARTMENT
UPDATE DEPARTMENT SET LOC='SEOUL'
SELECT * FROM DEPARTMENT
Loading…
Cancel
Save