SQL 테이블 PK 추가 및 삭제하기
[LAB]
PatientTable 이 테이블에 ID 열로 PK 가 있음. PK 는 클러스터 인덱스로 정의 될 수 있음.
CREATE TABLE [dbo].[PatientTable](
[ID] [int] NOT NULL,
[name] [nvarchar](30) NULL,
[Docname] [varchar](20) NULL,
[Jumin] [varbinary](128) NULL,
[Problem] [varbinary](400) NULL,
CONSTRAINT [PK_PatientTable] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
다시 껍데기 테이블인 PatientTable2 를 생성한다.
CREATE TABLE [dbo].[PatientTable2](
[ID] [int] NOT NULL,
[name] [nvarchar](30) NULL,
[Docname] [varchar](20) NULL,
[Jumin] [varbinary](128) NULL,
[Problem] [varbinary](400) NULL,
) ON [PRIMARY]
PK 조건을 추가할 때 아래와 같이 해주면 추가가 된다.
여기서 같은 디비안에 PK 이름이 같은경우 생성이 안된다. 다르게 정의르 해야 가능하다.
ALTER TABLE PatientTable2
ADD CONSTRAINT [PK_PatientTable2] PRIMARY KEY (ID);
<삭제하기>
ALTER TABLE PatientTable2
DROP CONSTRAINT [PK_PatientTable2];
이름이 중복시 아래와 같이 나온다.
ALTER TABLE PatientTable2
ADD CONSTRAINT [PK_PatientTable] PRIMARY KEY (ID);
메시지2714, 수준16, 상태4, 줄3
데이터베이스에'PK_PatientTable'(이)라는개체가이미있습니다.
메시지1750, 수준16, 상태0, 줄3
제약조건을만들수없습니다. 이전오류를참조하십시오.
키워드 :PK삭제, PK추가