database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 4331 게시물 읽기
No. 4331
트리거 컴파일은 문제가 없는데 적용이 안되네요
작성자
양철우(jaegan)
작성일
2008-07-16 09:45
조회수
4,837

Create TRIGGER updateTB_ITMC_Status
 on TB_ITMC_Status
 AFTER UPDATE
as

Declare
@CNT          int, 
@Num          varchar(30), 
@wid          varchar(30), 
@Sgubun       varchar(30),
@Sector       varchar(30),
@Dept         varchar(30),  
@Username     varchar(30),
@PC_SN        varchar(30), 
@MN_SN        varchar(30), 
@IP_Class     varchar(30),
@IP_Tail      varchar(30),
@OS           varchar(30), 
@InputDay     varchar(30),
@InputNM      varchar(30),
@Description  varchar(30),
@MS_SN        varchar(30)

select @wid         = wid         from inserted
select @Sgubun      = Sgubun      from inserted
select @Sector      = Sector      from inserted
select @Dept        = Dept        from inserted
select @Username    = Username    from inserted
select @PC_SN       = PC_SN       from inserted
select @MN_SN       = MN_SN       from inserted
select @IP_Class    = IP_Class    from inserted
select @IP_Tail     = IP_Tail     from inserted
select @OS          = OS          from inserted
select @InputDay    = InputDay    from inserted
select @InputNM     = InputNM     from inserted
select @Description = Description from inserted
select @MS_SN       = MS_SN       from inserted

 

BEGIN
         -- PC
  if @PC_SN <> ''
 
         BEGIN
            SELECT COUNT(*)  AS COUNT
              INTO CNT
              FROM TB_ITMC_HIS 
             WHERE WID = @wid+'P'
         END
        
         IF @CNT > 0

         BEGIN
           
           
            UPDATE TB_ITMC_HIS SET sgubun      = sgubun   ,
                                   workday     = convert(varchar(10), getdate(), 120)  ,
                                   devsn       = devsn    ,
                                   sector      = sector   ,
                                   dept        = dept     ,
                                   username    = username ,
                                   act         = '이전설치'      ,
                                   description = description ,
                                   inputday    = convert(varchar(10), getdate(), 120)    ,
                                   inputnm     = inputnm     ,
                                   status      = '수정'
            WHERE WID = @wid+'P'
        END
        ELSE
        BEGIN
           
     INSERT INTO TB_ITMC_his(wid            ,sgubun    ,workday   ,devsn     ,
                             sector         ,dept      ,username  ,act    ,
                             description    ,inputday  ,inputnm   ,status)
                      VALUES(@wid+'P'          ,@sgubun   ,convert(varchar(10), getdate(), 120)  ,@PC_SN ,
                             @Sector        ,@dept     ,@username  ,'이전설치'     ,
                             @Description   ,convert(varchar(10), getdate(), 120)  ,@inputnm, '수정')
        END

        -- 모니터 
  if  @MN_SN <> ''
        BEGIN
            SELECT COUNT(*)  AS COUNT
              INTO CNT
             FROM TB_ITMC_HIS 
            WHERE WID = @wid+'M'
        END

       IF @CNT > 0
 
       BEGIN
          UPDATE TB_ITMC_HIS SET sgubun      = sgubun   ,
                                 workday     = convert(varchar(10), getdate(), 120)  ,
                                 devsn       = devsn    ,
                                 sector      = sector   ,
                                 dept        = dept     ,
                                 username    = username ,
                                 act         = '이전설치'      ,
                                 description = description ,
                                 inputday    = convert(varchar(10), getdate(), 120)    ,
                                 inputnm     = inputnm     ,
                                 status      = '수정'
          WHERE WID = @wid+'M'
       END

       ELSE

       BEGIN   
     INSERT INTO TB_ITMC_his(wid            ,sgubun    ,workday   ,devsn     ,
                             sector         ,dept      ,username  ,act    ,
                             description    ,inputday  ,inputnm   ,status)
                      VALUES(@wid+'M'          ,@sgubun   ,convert(varchar(10), getdate(), 120)  ,@PC_SN ,
                             @Sector        ,@dept     ,@username  ,'이전설치'     ,
                             @Description   ,convert(varchar(10), getdate(), 120)  ,@inputnm, '수정')

       END
END 

go



처음 만들어 보는건데 

TB_ITMC_Status 해당 테이블에 data가 수정되었을시에

TB_ITMC_his 테이블에 기존 data가 있으믄 update 없으면 insert를 할려는데요

프로그램에서 실행을 해도 이상은 없는데 data가 안들어오네요 ㅜㅜ

뭐가 틀린게 있나요?

이 글에 대한 댓글이 총 1건 있습니다.

트리거를 사용하시면 


흠 after 도 inserted로 오는줄 모르겠지만 저걸로 체크해보시기 바랍니다.


그럼

김병석(byung82)님이 2008-07-17 00:53에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4334일배치로 비교후 인서트 프로시져... [1]
유보현
2008-07-17
4690
4333디비서비스중에 MS-sql 재설치하면...
새미
2008-07-17
4636
4332MSSQL2005와 WinXP 서비스팩3와의 궁합 [1]
2008-07-17
5115
4331트리거 컴파일은 문제가 없는데 적용이 안되네요 [1]
양철우
2008-07-16
4837
4330이런 테이블 조합은 어떻게 하나요.. [1]
sqler
2008-07-15
4428
4329SQL Server 과부하시 다운 현상이...
한승후
2008-07-14
11411
4327중복 제거 [3]
지윤서
2008-07-14
4689
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다