programing

SQL Server에서 외부 키를 드롭하려면 어떻게 해야 합니까?

instargram 2023. 4. 7. 20:53
반응형

SQL Server에서 외부 키를 드롭하려면 어떻게 해야 합니까?

다음 방법으로 (SQL Server에) 외부 키를 작성했습니다.

alter table company add CountryID varchar(3);
alter table company add constraint Company_CountryID_FK foreign key(CountryID) 
references Country;

그런 다음 다음 쿼리를 실행합니다.

alter table company drop column CountryID;

다음의 에러가 표시됩니다.

메시지 5074, 레벨 16, 스테이트 4, 라인 2
오브젝트 'Company_Country'ID_FK'는 '국가' 열에 종속되어 있습니다.신분증.
메시지 4922, 레벨 16, 스테이트 9, 라인 2
테이블 드롭 열 변경 국가하나 이상의 개체가 이 열에 액세스하기 때문에 ID가 실패했습니다.

시도해 봤지만 효과가 없는 것 같습니다.

alter table company drop foreign key Company_CountryID_FK; 
alter table company drop column CountryID;

드롭하려면 어떻게 해야 하나요?CountryID열?

감사해요.

해라

alter table company drop constraint Company_CountryID_FK


alter table company drop column CountryID

이 조작은 유효합니다.

ALTER TABLE [dbo].[company] DROP CONSTRAINT [Company_CountryID_FK]

이게 너에게 도움이 될 것 같은데...

DECLARE @ConstraintName nvarchar(200)
SELECT 
    @ConstraintName = KCU.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC 
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU
    ON KCU.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG  
    AND KCU.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA 
    AND KCU.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
WHERE
    KCU.TABLE_NAME = 'TABLE_NAME' AND
    KCU.COLUMN_NAME = 'TABLE_COLUMN_NAME'
IF @ConstraintName IS NOT NULL EXEC('alter table TABLE_NAME drop  CONSTRAINT ' + @ConstraintName)

특정 테이블 및 열을 기준으로 외부 키 제약 조건을 삭제합니다.

제약조건의 존재를 먼저 확인한 후 삭제합니다.

if exists (select 1 from sys.objects where name = 'Company_CountryID_FK' and type='F')
begin
alter table company drop constraint  Company_CountryID_FK
end
alter table company drop constraint Company_CountryID_FK

MSSQL을 모르는데 다음 항목이 아닐까요?

alter table company drop **constraint** Company_CountryID_FK;

테이블을 우클릭하여 [수정]를 선택하고 속성으로 이동하여 우클릭 후 [프라이머리 키 드롭]를 선택할 수도 있습니다.

FK 구속조건을 삭제하시겠습니까, 아니면 열 자체를 삭제하시겠습니까?

구속조건을 해제하려면:

alter table company drop constraint Company_CountryID_FK

제약 조건을 해제할 때까지 열을 삭제할 수 없습니다.

언급URL : https://stackoverflow.com/questions/93264/how-do-i-drop-a-foreign-key-in-sql-server

반응형