programing

SQL 구문을 사용하여 기본 키 제약 조건을 변경하려면 어떻게 해야 합니까?

showcode 2023. 4. 25. 23:49
반응형

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 입니다.

반응형