[sql-server] 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_CountryID_FK’개체는 ‘CountryID’열에 종속됩니다.
메시지 4922, 수준 16, 상태 9, 줄 2
ALTER TABLE DROP COLUMN 하나 이상의 개체가이 열에 액세스하여 CountryID가 실패했습니다.
나는 이것을 시도했지만 작동하지 않는 것 같습니다 :
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;
답변
테이블을 마우스 오른쪽 버튼으로 클릭하고 수정을 선택한 다음 속성으로 이동하여 마우스 오른쪽 버튼으로 클릭하고 기본 키 삭제를 선택할 수도 있습니다.