작업을 하다 플드 속성 값을 변경 해야 할 일이 생겼다.
기본적으로 필드 속성 변경 하는 mssql 구문은
ALTER TABLE [테이블명] ALTER COLUMN [COLUMN명] [데이터타입] 이다.
Ex) Alter Table Code_Master Alter Column code_type Varchar(30) Not null;
위와 같이 실행 시켜 보니.....
종속성 문제로 변경 할 수가 없다는 메세지가 떴다. 이유는...code_type 필드가 Primary key 로 지정 되어 있어서였다.
그래서......
Primary Key 해제 -> 필드 속성 변경 -> Primary Key 셋팅 으로 진행 하기로 하였다.
필드 속성 변경법은 위에서 설명 했으며
Primary Key 해제는
ALTER TABLE [테이블명] DROP [Primary Key 제약조건명]
Ex) Alter Table Code_Master drop constraint PK__Code_Mas__B02ABB936B24EA82
* 제약조건명 확인 방법
- sp_helpindex 이용 (sp_helpindex [테이블명])
Ex) EXEC sp_helpindex Code_Master ;
- 실행 화면 (index_name 이 바로 위에 들어갈 Primary Key 제약조건명 이다.)
Primary Key 설정은
ALTER TABLE [테이블명] ADD CONSTRAINT [PK 제약조건명] PRIMARY KEY [ (필드명) ]
Ex) Alter Table Code_Master ADD constraint PK__Code_Master Primary Key ( code_type);
여기서 주의 할 점은
- 기존 데이터에 NULL 이 존재 하면 안됨.
- null 허용이 체크 되지 않아야 한다.
- 중복되는 값이 들어 있지 않아야 한다.
기본 키를 정의하려면 다음과 같은 순서로 진행
1)데이터베이스 테이블 디자인에서 기본 키로 정의하려는 데이터베이스 열에 대한 행 선택자를 클릭한다. 여러 열을 선택하려면 Ctrl 키를 누른 채로 다른 열에 대한 행 선택자를 클릭한다.
2)열의 행 선택자를 마우스 오른쪽 단추로 클릭하고 기본 키 설정을 선택한다. 기본 키 인덱스는 테이블 이름 앞에 "PK_"로 시작하는 이름이 부여되며 속성 페이지의 인덱스/키 탭에서 자동으로 만들어진다.
3)기본 키를 다시 정의하려면 새로운 기본 키를 만들기 전에 먼저 기존의 기본 키에 대한 모든 관계를 삭제해야 한다. 이 과정의 일부로서 기존의 관계들이 자동으로 삭제될 것이라는 경고 메시지가 표시된다.
4)기본 키 열은 행 선택기의 기본 키 기호로 식별됩니다. 키의 모습은 열쇠의 모습을 하고 테이블 열 왼쪽에 나타난다.
5)기본 키가 둘 이상의 열로 구성된 경우 한 열에는 중복된 값을 사용할 수 있지만 기본 키의 모든 열에 있는 값들의 각 조합은 고유해야 한다.
'프로그래밍 > Ms-sql' 카테고리의 다른 글
[MS-SQL] 설치 센터 실행시 오류 (0) | 2012.01.25 |
---|---|
[MS-sql] 제약 조건명 설정 하기 (0) | 2012.01.02 |
[MS-SQL] SQL문에서 NULL 값인 데이터 찾기 (0) | 2011.12.13 |