반응형
2013년에 포스팅한 내용이 너무 간단한 것 같아서 좀 더 자세한 내용으로 다시 올립니다.
SQL서버에서 기존의 PK로 사용된 컬럼을 다른 컬럼으로 변경하려면 다음과 같이 합니다.
1. 기존 PK 명(인덱스 명) 확인
sp_helpindex 테이블명
- primary key로 지정된 인덱스 명을 확인 합니다.
2. 기존 PK 삭제
ALTER TABLE 테이블명
DROP CONSTRAINT 기존_PK명
- 1에서 확인된 인덱스 명을 이용합니다.
3. 새로운 PK 정의
ALTER TABLE 테이블명
ADD CONSTRAINT 새_PK명
PRIMARY KEY [NONCLUSTERED](컬럼1, 컬럼2, ...)
- 새 PK에 포함될 컬럼은 NULL이 허용되지 않는 컬럼이어야 합니다.
- 별도로 지정하지 않으면 PK 컬럼이 클러스터 인덱스로 생성됩니다.
- PK가 아닌 다른 컬럼을 클러스터 인덱스로 사용할 계획이라면 NONCLUSTERED 옵션을 지정합니다.
4. 잘 변경되었는지 확인
반응형
'데이터베이스' 카테고리의 다른 글
[SQL서버] VALUES의 다양한 용법(테이블 값 생성자) (0) | 2021.03.11 |
---|---|
[SQL서버] 로그 파일 크기 줄이기 (0) | 2021.03.04 |
[SQL서버] 커밋할 수 없는 트랜잭션 (0) | 2020.12.11 |
[SQL서버] SSMS 완료 시간 표시 끄기 (0) | 2020.06.08 |
[SQL서버] 변수를 포함한 OpenQuery UPDATE (2) | 2019.10.29 |