SQL 구문을 사용하여 기본 키 제약 조건을 변경하려면 어떻게 해야 합니까?
기본 키 제약 조건의 열이 누락된 테이블이 있습니다.SQL Server를 통해 편집하는 것이 아니라 업데이트 스크립트의 일부로 추가하기 위해 스크립트에 넣으려고 합니다.
어떤 구문을 사용하여 이 작업을 수행할 수 있습니까?키 제약 조건을 삭제하고 다시 작성해야 합니까?
네, Alter 테이블로 제약 조건을 삭제한 후 다시 생성하는 방법밖에 없습니다.
ALTER TABLE <Table_Name>
DROP CONSTRAINT <constraint_name>
ALTER TABLE <Table_Name>
ADD CONSTRAINT <constraint_name> PRIMARY KEY (<Column1>,<Column2>)
PRIMARY KEY CONSTRAINT
변경할 수 없습니다. 삭제했다가 다시 생성할 수만 있습니다.큰 데이터 세트의 경우 장시간 실행 시간을 유발하여 테이블을 사용할 수 없게 됩니다.
성능 측면에서 클러스터되지 않은 인덱스는 삭제 및 생성 시 다시 업데이트되므로 보관해야 할 필요가 없습니다.빅 데이터 집합인 경우 테이블 이름 변경(가능한 경우 테이블 보안 설정)을 검토하고 올바른 키로 빈 테이블을 다시 생성하면 모든 데이터가 마이그레이션됩니다.이걸 위한 충분한 공간이 있는지 확인해야 해요.
내 경우 기본 키(column4)에 열을 추가하고 싶습니다.이 스크립트를 사용하여 column4를 추가했습니다.
ALTER TABLE TableA
DROP CONSTRAINT [PK_TableA]
ALTER TABLE TableA
ADD CONSTRAINT [PK_TableA] PRIMARY KEY (
[column1] ASC,
[column2] ASC,
[column3] ASC,
[column4] ASC
)
기본 키 제약 조건은 삭제했다가 다시 생성할 수만 있습니다.예를 들어 MySQL은 다음과 같습니다.
ALTER TABLE table_name DROP PRIMARY KEY;
ALTER TABLE table_name ADD PRIMARY KEY (Column1,Column2);
sp_module을 사용하여 제약 조건 개체의 이름을 변경할 수 있습니다(이 답변에 설명된 대로).
예를 들어 다음과 같습니다.
EXEC sp_rename N'schema.MyIOldConstraint', N'MyNewConstraint'
언급URL : https://stackoverflow.com/questions/8761570/how-can-i-alter-a-primary-key-constraint-using-sql-syntax 입니다.
'programing' 카테고리의 다른 글
Angular 4에서 실시간 창 크기 변화를 감지합니다. (0) | 2023.04.25 |
---|---|
awk 스크립트에서 셸 변수를 사용하려면 어떻게 해야 합니까? (0) | 2023.04.25 |
/bin/sh: apt-get: 찾을 수 없습니다. (0) | 2023.04.25 |
셀 범위에 수식을 설정합니다. (0) | 2023.04.25 |
WPF MessageBox 창 스타일입니다. (0) | 2023.04.25 |