C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[6237] 해결~~감사합니다(내용무)
트리거 [] 2374 읽음    2001-03-21 15:24
정진후 님이 쓰신 글 :
: 트리거 님이 쓰신 글 :
: : 트리거에서 update는 어케하는지 아시는분 갈켜주시면 감사..
: : 일반 테이블에서 레코드가 있고..( insert/ delete 는 이해가 되는데..)
: : 기존 레코드의 값이 변경 되었을때 기존의 값과 새로 변경 된 값이 트리거로
: : 반영이 되어야 할텐데..
: : 읽어주셔서 대단히 감사합니다..
: : 아시는분 꼭좀 부탁합니다..
:
: 안녕하세요. 정진후라고 합니다.
: 우선 mssql에서 트리거를 사용하실 때 알아두셔야 할 개념이
: inserted,와 deleted라는 가상 테이블입니다.
: 가상 테이블이라고 하기는 좀 뭣하지만 update문이 적용이 될 때 메모리
: 상에서 확보되는 공간이라고 생각하시면 될 것 같고요.
: 이름에서도 예상이 되시겠지만 update문이 실행이되면,
: deleted테이블에는 update문이 실행되기 이전의 값이 들어가고,
: inserted테이블에는 바뀌어진 값이 들어가게 됩니다.
:
: 간단한 예를 들어본다면
:
: CREATE TRIGGER [UPDATE_ON_sometavle] ON dbo.somedb
: FOR UPDATE
: AS
: DECLARE @charfield char(5), @intfield int, @timefield datetime
:
: SELECT  @charfield = somefield1, @intfield  = somefield2, @timefield =  somefield3
: FROM    inserted   
: //deleted 테이블의 값도 물론 위와 같은 방식으로 변수를 지정하고 참조 가능합니다.
: //----------------------이건 일례 입니다.
: IF @timefield IS NULL
: BEGIN
:     SET @timefield = getdate()
: END
:
:
: IF @intfield = 0
: BEGIN
:     UPDATE  sometable
:     SET    somefield2 = @intfield,
:                   somefield3 = @timefield
:     WHERE    somefield1 = @charfield;
: END
:
: 뭐 조금은 간단한 예이지만 개략적인 내용은 아시겠지요?
: 설명이 부족한 부분이 있으면 다시 질문해주세요.
: 아는데까지 다시 답변 드리겠습니다.

+ -

관련 글 리스트
6231 MS SQL 트리거에서 Help me 트리거 2401 2001/03/21
6232     Re:MS SQL 트리거에서 Help me 정진후 3887 2001/03/21
6237         해결~~감사합니다(내용무) 트리거 2374 2001/03/21
6235         답변감사합니다.. 그런데.. 트리거 2281 2001/03/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.