키를 변경하기 위해 중복된 데이터를 삭제 하는 SQL
원래는 LRD, DATE는 유일해야 하나 버그로 인하여 중복된 데이터가 들어간 경우 사용
SELECT LRD, DATE FROM AUTO_RPT
GROUP BY LRD, DATE
HAVING COUNT(*) > 1
-- 결과 확인 후 아이디 기록
DELETE FROM AUTO_RPT
WHERE LRD = '0' AND DATE IN
(SELECT DATE FROM AUTO_RPT
GROUP BY LRD, DATE
HAVING COUNT(*) > 1
-- 기존의 키 삭제
ALTER TABLE dbo.AUTO_RPT
DROP CONSTRAINT PK_AUTO_RPT
GO
-- 새로운 키 생성
ALTER TABLE dbo.AUTO_RPT ADD CONSTRAINT
PK_AUTO_RPT PRIMARY KEY CLUSTERED
(
LRD,
DATE
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
'Programming > mssql2005' 카테고리의 다른 글
[작성중] 병합복제 동기화 시간 주기 변경 (0) | 2008.06.18 |
---|---|
일정 개수 이전의 데이터를 확인하는 SQL (0) | 2008.02.11 |
MSSQL 2005 버퍼풀 비우기 (0) | 2008.01.23 |
디스크에 백업/복구 (0) | 2008.01.15 |
MSSQL 2005 복구 모델 (0) | 2008.01.09 |