1. 중복제거-최신 날짜를 가진 문서만 선택하기
USE [테이블명]
GO
SELECT [seq_id]
,[InnertDateTime]
,[CtrtCode]
,[RegtDate]
,[UpdateDate]
FROM [dbo].[ProjectOutlineUpdate] A
where UpdateDate=(Select MAX(UpdateDate) from [dbo].[ProjectOutlineUpdate] B where B.CtrtCode = A.CtrtCode
group by CtrtCode)
GO
2. /* 타임스탬프를 찍을수 있도록 필드를 수정하는 쿼리, 반드시 테이블 생성후 실행 */
ALTER TABLE [dbo].[PUpdate] ADD CONSTRAINT [DF_PUpdate_LOADINGDATETIME] DEFAULT (getdate()) FOR [InnertDateTime]
GO
3. merge
MERGE INTO 타겟테이블 --INSERT/UPDATE 할 테이블
USING (SELECT 1 AS DUM) X
ON (필드1= 비교할 대상) --조건
WHEN MATCHED THEN --위 조건에 맞는 데이터가 있으면 UPDATE
UPDATE SET
타겟_필드1= 'AAA'
,타겟_필드2= 'BBB'
WHEN NOT MATCHED THEN --위 조건에 맞는 데이터가 없으면 INSERT
INSERT (타겟_필드1, 타겟_필드2..)
VALUES(
'AAA'
, 'BBB'
); -- MERGE문에서는 ; 를 꼭 넣어야 함
MERGE INTO test_member --INSERT/UPDATE 할 테이블
USING (SELECT 1 AS DUM) X
ON (id= 'hhh') --조건
WHEN MATCHED THEN --위 조건에 맞는 데이터가 있으면 UPDATE
UPDATE SET
member_name = '태연'
WHEN NOT MATCHED THEN --위 조건에 맞는 데이터가 없으면 INSERT
INSERT (id, member_name)
VALUES(
'jjj'
, '송준기'
); -- MERGE문에서는 ; 를 꼭 넣어야 함