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 7240 게시물 읽기
No. 7240
오라클  트리거 를 MSSQL 전환 문의 드립니다.
작성자
김병훈(kepler123)
작성일
2021-10-01 08:02
조회수
194

오라클  트리거 를 MSSQL 전환 문의 드립니다.


/*############################################################
 오라클  트리거 
############################################################*/
CREATE OR REPLACE TRIGGER "XXXXXXXX"."TR_CSS_PMNT_AMT_CII_REF_KEY" 
BEFORE INSERT ON CSS_PMNT_AMT_CII FOR EACH ROW
BEGIN

  if inserting then       
        if :NEW.REF_KEY is null then          
            select 'CSS_PMNT_AMT_CII'||to_char(SQ_CSS_REF_KEY.nextval,'00000000000000000000') into :NEW.REF_KEY from dual;
        end if;
    end if;

END;
/

[CSS_PMNT_AMT_CII 테이블] 에 INSERT 시
칼럼:REF_KEY 에 자동으로 값을 넣어주는 트리거 입니다.

INSERT문에 "REF_KEY"의 명시는 따로 없고
다른칼럼
INSERT시 트리거로 자동 처리됨

이걸 MS-SQL 로 변환해야 하는데 도저히 모르겠어서 도움 요청합니다.

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

자세한 프로세스가 맞는지 잘 모르겠으나  ORACLE --->SQLSERVER로 변환한 문법으로 작성해 보았습니다.  참고만 하세오


USE  [XXXXXXXX]

GO


IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME = 'TR_CSS_PMNT_AMT_CII_REF_KEY')

BEGIN

  DROP   TRIGGER  [XXXXXXXX].[TR_CSS_PMNT_AMT_CII_REF_KEY]

END

GO


CREATE TRIGGER "XXXXXXXX"."TR_CSS_PMNT_AMT_CII_REF_KEY" 

       BEFORE INSERT ON CSS_PMNT_AMT_CII

AS

DECLARE

  @REF_KEY              VARCHAR(50),

  @SQ_CSS_REF_KEY       CHAR(20)    

BEGIN

  SELECT @REF_KEY         =  (SELECT REF_KEY   FROM INSERTED);

  SELECT @SQ_CSS_REF_KEY  =  CONVERT(CHAR(20), (SELECT NEXT VALUE FOR SQ_CSS_REF_KEY) );


  if @REF_KEY IS NULL THEN       

     SELECT 'CSS_PMNT_AMT_CII' + (SELECT REPLICATE(0, 20 - LEN(@SQ_CSS_REF_KEY)  )) + @SQ_CSS_REF_KEY

       INTO @REF_KEY;

  end if;


END;

Maria님이 2021-11-11 14:34에 작성한 댓글입니다.
이 댓글은 2021-11-12 16:02에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7244쿼리 질문드려요
유미
2022-01-12
25
7243서브쿼리 튜닝 문의 [1]
뉴비
2021-12-06
115
7240오라클  트리거 를 MSSQL 전환 문의 드립니다. [1]
김병훈
2021-10-01
194
7239중복되는 시간을 제거(포함) 하고 시작시간과 종료시간을 구하고 싶습니다. 쿼리 도움좀 부탁드려요. [1]
박인규
2021-08-27
290
7238쿼리문 보완좀 부탁드립니다. [2]
홍길동
2021-08-25
322
7237쿼리결과에 없는 데이터도 표시되게 하고 싶어요 [2]
바보온달
2021-08-20
257
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2022 DSN, All rights reserved.
작업시간: 0.011초, 이곳 서비스는
	PostgreSQL v13.3으로 자료를 관리합니다