티스토리 뷰
이번 *****증권 업체를 맡아서 TRIGGER를 한번 해봤다.
- 고객테이블에 데이터 변경이 일어나면 무조건,
-- 바뀌기전 데이터와 바뀐후 데이터를, 기록테이블에 저장하는 트리거
CREATE TRIGGER SMSAUTO_LIST_03_INSERT_TRIGGER
ON SMSAUTO_LIST_03
AFTER INSERT
AS
-- SMSAUTO_LIST_03 테이블에 INSERT가 일어나면
-- 이를 NVECARESENDLOG 테이블에 같은 값을 삽입한다.
INSERT INTO NVECARESENDLOG(RESULT_SEQ, CUSTOMER_KEY, CUSTOMER_NM, CUSTOMER_EMAIL, ERROR_CD)
SELECT RESULT_SEQ, MEMBER_ID AS CUSTOMER_KEY, TO_NAME AS CUSTOMER_NM, TO_PHONE AS CUSTOMER_EMAIL , ERROR_CODE AS ERROR_CD FROM inserted
GO
-- SMSAUTO_LIST_03 하는 테이블에 대해서
-- ERROR_CD에 Update가 발생한 경우에 실행되는 트리거
CREATE TRIGGER SMSAUTO_LIST_03_UPDATE_TRIGGER
ON SMSAUTO_LIST_03
AFTER UPDATE
AS
DECLARE @ECARE_NO VARCHAR(15)
DECLARE @RESULT_SEQ VARCHAR(16)
DECLARE @CUSTOMER_KEY VARCHAR(50)
DECLARE @SEND_DT VARCHAR(8)
DECLARE @SEND_TM VARCHAR(6)
DECLARE @ERROR_CD VARCHAR(4)
IF(UPDATE(ERROR_CODE))
BEGIN
SELECT
@RESULT_SEQ = RESULT_SEQ,
@CUSTOMER_KEY = MEMBER_ID,
@SEND_DT = CONVERT(CHAR(8),SEND_TIME,112),
@SEND_TM = REPLACE(CONVERT(VARCHAR(20),SEND_TIME,108),':',''),
@ERROR_CD = ERROR_CODE
FROM INSERTED
END
UPDATE NVECARESENDLOG
SET SEND_DT = @SEND_DT,
SEND_TM = @SEND_TM,
ERROR_CD = @ERROR_CD,
TRIGGER_FLAG='Y',
TRIGGER_DATE = GETDATE()
WHERE RESULT_SEQ = @RESULT_SEQ
AND CUSTOMER_KEY = @CUSTOMER_KEY
====================================================
-- SMSAUTO_LIST_03 하는 테이블에 대해서
-- SMSAUTO_LIST_03 테이블에 Update가 발생한 경우에 실행되는 트리거
CREATE TRIGGER SMSAUTO_LIST_03_UPDATE_TRIGGER
ON SMSAUTO_LIST_03
AFTER UPDATE
AS
DECLARE @ECARE_NO VARCHAR(15)
DECLARE @RESULT_SEQ VARCHAR(16)
DECLARE @CUSTOMER_KEY VARCHAR(50)
DECLARE @SEND_DT VARCHAR(8)
DECLARE @SEND_TM VARCHAR(6)
DECLARE @ERROR_CD VARCHAR(4)
IF(COLUMNS_UPDATED() > 0)
BEGIN
SELECT
@CUSTOMER_KEY = MEMBER_ID,
@SEND_DT = CONVERT(CHAR(8),DELIVER_TIME,112),
@SEND_TM = REPLACE(CONVERT(VARCHAR(20),DELIVER_TIME,108),':',''),
@ERROR_CD = ERROR_CODE
FROM INSERTED
END
UPDATE NVECARESENDLOG
SET SEND_DT = @SEND_DT,
SEND_TM = @SEND_TM,
ERROR_CD = @ERROR_CD,
TRIGGER_FLAG='Y',
TRIGGER_DATE = GETDATE()
WHERE CUSTOMER_KEY = @CUSTOMER_KEY
'Database' 카테고리의 다른 글
[ORACLE] TO_CHAR 요일값 구하기 (0) | 2009.05.06 |
---|---|
[DB] 쿼리상에서 없는 도메인메일 뺴기 (0) | 2009.04.06 |
[ORACLE] 토드에서 SQL문 자동 포멧팅 (0) | 2009.03.23 |
[MSSQL] 주민번호 or 사업자등록번호가 올때 LENGTH로 길이를 구분하여 짜르기 (0) | 2009.03.06 |
[MSSQL] DATEADD사용하기 (0) | 2009.03.06 |
- Total
- Today
- Yesterday
- delete
- tomcat
- apache
- 백업
- user
- java
- 테이블
- 윈도우
- mssql
- 서버
- 자동차
- 리눅스
- DATABASE
- select
- Linux
- 오라클
- eclipse
- MySQL
- table
- IP
- server
- sql
- Oracle
- DB
- Shell
- 데이터
- Windows
- Toad
- 파일
- 설정
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |