[SQL] 다른 데이터베이스에서 테이블에 외래 키
SQL다른 데이터베이스에서 테이블에 외래 키
나는 SQL 서버에 두 개의 데이터베이스를 가지고 내가 모두 데이터베이스에 다른 테이블의 외래 키를 보유하고 중요한 큰 테이블에 대한 공통 테이블이있다. 문제는 표가 DatabaseA에, 그리고 나는 DatabaseB에서이 테이블에 외래 키를 참조 할 필요가있다.
나는 어떻게 이것을 달성하기 위해 가장 좋은 방법은 그래서 SQL은 데이터베이스 간 참조 무결성을 지원하지 않습니다 알아? 나는 하나의 데이터베이스에 두 개의 데이터베이스와 메이크업을 함께 생각하고 -는 것이 문제가되지 제외하고 복잡성의 증가에서.
어떤 제안?
해결법
-
==============================
1.당신은 단지 FK 하나 DATBASE에 두 테이블을 유지하고 사용할 수 있습니다 - 내가 할 수 있다면 나는이 일을 피할 것인가?
당신은 단지 FK 하나 DATBASE에 두 테이블을 유지하고 사용할 수 있습니다 - 내가 할 수 있다면 나는이 일을 피할 것인가?
부모와 자식 테이블이 다른 데이터베이스에 있습니다.
이 상황에서 외부 키를 사용할 수는 없지만, 해결 방법이 있습니다 - 당신이 점검 제한 조건에 싸여 중 트리거 또는 UDF를 사용할 수 있습니다. 어느 쪽이든, 데이터 무결성은 완전 방수되지 않습니다 : 부모 테이블 충돌 및 백업에서 복원와 데이터베이스, 당신은 쉽게 고아로 끝날 수있는 경우.
트리거에 의해 부모 - 자식 관계 시행.
같은 트리거가 발생하지 않는 꽤 몇 가지 상황이 있습니다 :
· 테이블은 삭제됩니다.
· 테이블입니다 잘립니다.
· 중첩 및 / 또는 재귀 트리거에 대한 설정은 발사에서 트리거를 방지합니다.
또한 트리거는 올바르지 않을 수 있습니다. 어느 쪽이든, 당신은 당신의 데이터베이스에 고아로 끝날 수 있습니다.
-
==============================
2.여기에 SSIS 가져 오기 / 내보내기 마법사를 사용하는 방법에 대한 문서입니다 :
여기에 SSIS 가져 오기 / 내보내기 마법사를 사용하는 방법에 대한 문서입니다 :
http://www.databasejournal.com/features/mssql/article.php/3580216/SQL-Server-2005-Import--Export-Wizard.htm
이 작업을 수행하는 가장 쉬운 방법은 당신을위한 가장 편리한 어떤 형식으로 (필자는 두 가지의 작은을 사용하는 것) 하나의 데이터베이스를 내 보낸 다음 다른로 가져 오는 것입니다. 한 테이블 이름이 모두 다른만큼,이 문제를 제시해서는 안된다.
-
==============================
3.트리거는 다른 데이터베이스에 대한 참조 무결성을 적용 쓸 수 있습니다.
트리거는 다른 데이터베이스에 대한 참조 무결성을 적용 쓸 수 있습니다.
from https://stackoverflow.com/questions/1424327/foreign-keys-on-table-from-different-database by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 오류 코드 : 1822 외래 키 constaint를 추가하는 데 실패했습니다. 제약 조건에 대한 인덱스를 누락 (0) | 2020.07.12 |
---|---|
[SQL] 필드 이름을 대괄호 안에 대괄호를 탈출하는 방법 (0) | 2020.07.12 |
[SQL] 가중 행 확률로 PostgreSQL의 테이블에서 임의의 행을 선택 (0) | 2020.07.12 |
[SQL] 방법 pyspark를 사용하여 일부 필드로 그룹화 된 데이터 집합 주어진에서 최대 (날짜)를 얻으려면? (0) | 2020.07.12 |
[SQL] SQL 스왑 기본 키 값 (0) | 2020.07.12 |