2009-05-15 2 views

답변

65

:

기존 FK에 테이블과 오른쪽 클릭을 확장하여 "TO DROP"으로 스크립트 키를 선택하고 당신이 생성 얻을 것이다 경우에 수행 할 수 있습니다
IF EXISTS (SELECT * 
      FROM sys.foreign_keys 
      WHERE object_id = OBJECT_ID(N'[dbo].[FK_NAME]') 
      AND parent_object_id = OBJECT_ID(N'[dbo].[MyTable]')) 
BEGIN 
    -- do stuff 
END 

SQL의 스크립트.

+0

이 스크립트는 효과적이었습니다! 나는 당신이 메뉴에서 그런 것을 대본을 쓴다는 것을 믿을 수 없다. 도와 줘서 고마워. –

+5

당신은 SQL에서 거의 모든 것을 마우스 오른쪽 버튼으로 클릭 할 수 있으며, 테이블, 저장 프로 시저, 외래 키 등을위한 스크립트를 생성 할 수 있습니다. 관리 스튜디오는 자신이 할 수있는 멋진 기능 중 일부를 배운 후 친구입니다. – CodeLikeBeaker

+0

이 방법은 외래 키의 기본 이름을 사용하는 경우에만 작동합니다. 특히 다른 명명 규칙을 따를 수있는 다른 사람들이 만든 데이터베이스에서 작업하는 경우에는 가정을 기반으로 이름을 처리하는 것이 신뢰할 수 없습니다. 외래 키의 이름을 확인하는 대신 특정 열이 다른 테이블의 외래 키인지 확인하는 방법이 있습니까? –

7

우후! 방금 이틀 동안이 일을했습니다.

IF NOT EXISTS (SELECT name 
       FROM sys.foreign_keys 
       WHERE name = 'FK_Name') 
    ALTER TABLE table_name ADD CONSTRAINT FK_Name FOREIGN KEY (idcol) 
          REFERENCES OtherTable(idcol)