2010-08-16 4 views
15

Microsoft SQL Server 2005를 사용하고 있으며 일반적으로 SQL에 비교적 익숙하지 않습니다.SQL Server 오류 : "%"은 (는) 제약 조건이 아닙니다. 제약 조건을 삭제할 수 없습니다. 이전 오류 참조

데이터베이스 "정보"의 두 테이블 "자원"과 "그룹 _ 원본"사이에 관계가 있습니다. 리소스에는 Group_Resources에 "resource_id"라는 외래 키 "id"가 있습니다. 이 둘 사이에는 "fk_gr_res_resources"외래 키 제약 조건이 있습니다.

나는 데이터베이스 소유자로 설립되어 있으며 전체 읽기/쓰기/생성/삭제 권한이 있습니다.

나는 외래 키 제약 조건을 삭제하려면, 그래서 다음 쿼리 실행 :

ALTER TABLE [Information].[group_resources] DROP CONSTRAINT fk_gr_res_resources 

을 다음과 같은 오류 접수 :

'fk_gr_res_resources' is not a constraint. Could not drop constraint. See previous errors.

는 제약이 있기 때문에 내가 혼란 스러워요을 , 맞춤법 오류가 없습니다. 부적절하게 삭제하는 건가요? 잘못된 테이블에서 제약 조건을 삭제합니까? 어떤 제안이라도 대단히 감사하겠습니다. & 제발 저를 비추 지 마십시오. 나는 결국 SQL에 익숙하지 않습니다.

+2

다른 테이블에서 제약 조건을 삭제하려고 시도 했습니까? 그것은 올바른 장소에서 삭제하는지 여부에 대한 귀하의 질문에 답할 것입니다. – SqlRyan

+0

예 - "gropus_resources"및 "resources"에서 제약 조건을 삭제하려고했습니다. 나는 여전히 같은 오류가 발생합니다. 제안 해 주셔서 감사합니다. – amanda

답변

21

는이 오류를 얻고있다 :

Msg 3728, Level 16, State 1, Line 1 
'fk_gr_res_resources' is not a constraint. 
Msg 3727, Level 16, State 0, Line 1 
Could not drop constraint. See previous errors. 

때문에에게 FK 제약 조건이 존재하지 않습니다!

당신은Information올바른 스키마 이름이 아닌dbo 있는지 확인 있습니까?

1.이 SQL은 FK가 존재하지 않음을 증명합니다 :

SELECT * FROM sysobjects WHERE name = 'fk_gr_res_resources' 

2. 아차, 내 원래의 대답에 잘못 여기에 SQL Server에 대한 올바른 구문은 다음과 같습니다

데이터베이스에 대한
ALTER TABLE <table_name> 
DROP CONSTRAINT <foreignkey_name> 

3. 예 :

이 실행

4. 시도 : 오류가 계속받을 경우

IF NOT EXISTS (SELECT * FROM sysobjects WHERE name = 'fk_gr_res_resources') 
BEGIN 
    ALTER TABLE Group_Resources 
    ADD CONSTRAINT fk_gr_res_resources 
    FOREIGN KEY (resource_id) 
    REFERENCES Resources(id) /* make sure Resources.id is a PRIMARY KEY */ 
END; 

5. 그런 다음이 시도하고 참조 : 다른 구문은 MySQL을 위해이었다

ALTER TABLE Group_Resources 
DROP CONSTRAINT fk_gr_res_resources 

을, 죄송합니다.

ALTER TABLE <table_name> 
DROP FOREIGN KEY <foreignkey_name> 

나를 고쳐 주셔서 감사합니다. OMG 조랑말!

+0

코드 예제를 보내 주셔서 감사합니다. 나는 다음에 넣어 : 은 "TABLE ALTER DROP FOREIGN KEY " 그리고이 오류 준 : " '외국인'키워드 근처의 구문이 잘못되었습니다." 두 번째 예제와 동일한 거래입니다. (모든 것이 적절하게 철자되었으므로 오류가 계속 발생하는 이유는 확실하지 않습니다. 구문은 정확합니다.) – amanda

+0

@OMG 조랑말 : 내 실수를 지적 해 주셔서 감사 드리며 아래로 투표하지 마세요. – JohnB

+0

이 답변은 내 문제를 해결했습니다 :) @JohnB & @OMG 조랑말 : 귀하의 제안에 너무 감사드립니다! – amanda

관련 문제