INSERT INTO A_TABLE(STOCK_DT, SEQ_NO, USE_DT, USE_YN, ITEM_CD, ITEM_NO,
BACKFROM_DT, SIZ_TP, CREATE_DT, CRE_EMP_NO, UPDATE_DT,
UPD_EMP_NO)
SELECT '20080101', ( SELECT CASE COUNT(*)
WHEN 0 THEN 1
ELSE COUNT(*)
END
FROM A_TABLE ) SEQ_NO,
USE_DT, USE_YN, ITEM_CD, ITEM_NO, '20080124', SIZ_TP,
CREATE_DT, CRE_EMP_NO, UPDATE_DT, UPD_EMP_NO
FROM B_TABLE A
WHERE A.USE_YN = 'N'
AND A.USE_DT = ''
AND A.STOCK_DT BETWEEN '20070101' AND '20080101'
A_TABLE에 SEQ_NO값을 인서트 될떄마다 1씩 증가시키면서 인서트 하고 싶은데요..
다른 방법이 없을까요.. 커서는 좀 느린거 같고..
자동증가 컬럼으로 만들어서 ON, OFF하는 방법말고 SQL문으론 안되는건지..궁금해서 올립니다. ^^;;
IDENTITY로 하게 되면 INTO문을 써야해서 TEMP테이블을 만들어서 다시 INSERT 해야 할거 같던데..
그럴경우 이미 OLD_TBL에 같은 SEQ_NO값이 있을경우 문제가 될수도 있을꺼 같고요..
물론 먼저 OLD_TBL의 SEQ_NO 값을 불러와서 IDENTITY해도 되겠지만..SQL문 한방에 가능한
방법은 없나 해서 여쭈어 봅니다. 감사합니다. ^^;;
|