반응형
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;
테이블을 마우스 오른쪽 버튼으로 클릭하고 수정을 선택한 다음 속성으로 이동하여 마우스 오른쪽 버튼으로 클릭하고 기본 키 삭제를 선택할 수도 있습니다.
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
반응형
'Programming' 카테고리의 다른 글
IntelliJ IDEA의 응용 프로그램 실행 프로필에서 클래스 경로에 디렉토리를 추가하는 방법은 무엇입니까? (0) | 2020.05.14 |
---|---|
파이썬의 모든 기능은 어떻게 작동합니까? (0) | 2020.05.14 |
npm package.json의 종속성으로 개인 github 리포지토리를 설치합니다. (0) | 2020.05.14 |
템플릿 코드 내에서 변수 값을 설정하는 방법은 무엇입니까? (0) | 2020.05.14 |
@ManyToOne JPA 연관에 대한 CascadeType.ALL의 의미는 무엇입니까 (0) | 2020.05.14 |