반응형
삭제하고 싶은 테이블 조회
SELECT * FROM 테이블명;
SELECT * FROM [dbo].[QESServicesNames];

테이블 삭제
drop table 테이블명;
drop table [dbo].[QESServicesNames];
-> 에러 : Msg 3726, Level 16, State 1, Line 5
개체 'dbo.QESServicesNames'은(는) FOREIGN KEY 제약 조건에서 참조하므로 삭제할 수 없습니다.

-> 에러 해결 : Table을 삭제하려면, FOREIGN KEY를 먼저 삭제해야한다.
Foreign key의 이름을 알면 바로 alter table 테이블명 drop constraint FK이름; 으로 삭제 할 수 있지만
Foreign key의 이름을 몰라서 2가지 방법으로 조회해봤다.
FK 이름 조회 (2가지 방법)
-- check name of foreign key
-- 1) first way
SELECT
f.name,
OBJECT_NAME(f.parent_object_id) TableName,
COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName
FROM
sys.foreign_keys AS f
INNER JOIN
sys.foreign_key_columns AS fc
ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN
sys.tables t
ON t.OBJECT_ID = fc.referenced_object_id
WHERE
OBJECT_NAME (f.referenced_object_id) = 'QESServicesNames'

-- 2) second way
sp_helpconstraint 테이블명;
sp_helpconstraint QESServicesNames;

-- drop FK
ALTER TABLE 테이블명 DROP CONSTRAINT FK명;
ALTER TABLE QESServices DROP CONSTRAINT FK_QESServices_QESServicesNames;
--> but failed
- 에러 : Msg 3728, Level 16, State 1, Line 36
'FK_QESServices_QESServicesNames'은(는) 제약 조건이 아닙니다.
Msg 3727, Level 16, State 0, Line 36
제약 조건을 삭제할 수 없습니다. 이전 오류를 참조하십시오.

-> 에러 해결 : FK 이름을 인식할 수 있게 단순하게 변경하면 삭제할 수 있음.
FK명 변경 방법
sp_rename '변경하고싶은FK명', '변경하고싶은FK명';
sp_rename 'FK_QESServices_QESServiceNames', 'FK_QESServiceId';

변경된 FK 확인
sp_helpconstraint 테이블명;
sp_helpconstraint QESServicesNames;

drop FK again
삭제시 주의할 사항으로는 FK가 연결된 테이블의 FK를 삭제해주면 된다.
나는 QESServicesName 테이블과 QESServices 테이블의 FK가 연결되어있기 때문에 QESServices 테이블의 FK를 삭제해줬다.
ALTER TABLE 테이블명 DROP CONSTRAINT FK명;
ALTER TABLE [dbo].[QESServices] DROP CONSTRAINT FK_QESServiceId;

DROP QESServiceName
드디어 테이블이 삭제 되는것을 확인할 수 있다.
drop table 테이블명;
drop table [dbo].[QESServicesNames];

테이블 삭제 최종확인
SELECT * FROM 테이블명;
SELECT * FROM [dbo].[QESServicesNames];

반응형
'💻 개발과 자동화' 카테고리의 다른 글
TOMCAT 배포 및 Log 디렉토리 변경 (2) | 2023.08.25 |
---|---|
리눅스 서버에 USB 마운트 및 랜선 접속 방법 (0) | 2023.08.24 |
Postman 설치 및 사용방법 (0) | 2023.08.23 |
CentOS7 JEUS8 설치 (jeus 계정) (0) | 2023.08.22 |
부팅시 WAS(Tomcat) 자동 재시작 (0) | 2023.08.21 |
댓글