2010-07-15 6 views
0

SQL Server 2008R2 Express가 가장 좋은 방법에 대한 조언을 전합니다. 동일한 서버에 별도의 데이터베이스에있는 여러 응용 프로그램이 있습니다. 그것들은 별도의 데이터베이스에있는 중앙 직원/구조 목록을 사용하는 모든 "플러그인"입니다. 응용 프로그램이 JET에서 마이그레이션되는 중입니다.데이터베이스간에 테이블 연결

내가 찾고있는 모든 "플러그인"데이터베이스를 중앙 데이터베이스를 참조 표준 쿼리와 내가 표현을 사용하고로 전망 등

에 해당 테이블을 사용 할 수있는 가장 좋은 방법이 복제 솔루션을 배제하고 내가 생각할 수있는 유일한 옵션은 트리거 또는 저장 프로 시저를 사용하여 플러그인에 대한 모든 변경 사항을 "푸시 (push)"하는 것입니다. 정보는 충분한 근거가있는 실시간 기준으로 채워 져야하지만 변경 수는 하루에 100 개까지 매우 적을 수 있으며 가장 큰 테이블에는 현재 약 1000 개의 행 (직원 이름 테이블) 만 있습니다. 모든 모든 것을 포함하지만 사람이 더 이상 세부 사항을 필요로하는 경우 다음 그냥 내가 잘못 이해 한 경우

감사

답변

2

사과를 요구하지만 설명에서이 모든 데이터베이스가 호스팅되는 같은 소리 것

희망 SQL Server의 동일한 인스턴스 - 복제에 대한 언급은 나를 불확실하게 만듭니다.

그렇다고 가정하면 중앙 데이터베이스에서 테이블의 복사본을 바꿀 수 있어야합니다. SQL 서버를 사용하면 "플러그인"데이터베이스에있는 테이블의 복사본을 중앙 테이블을 직접 참조하는 뷰 또는 동의어로 바꿀 수 있습니다 예를 들어 각 플러그인 db에 StaffNames 테이블이있는 경우이 테이블을 삭제하고 해당 테이블을 삭제하여 뷰로 바꿀 수 있습니다. (데이터베이스 이름. 스키마 이름. 개체 이름)

보기 :

drop table StaffNames 
go 

create view StaffNames 
as 
select * from <centraldbname>.<schema - probably dbo>.StaffNames 
go 

권한이 설정되어있는 한 원활하게 작업 할 수 있습니다.

또는 플러그인 데이터베이스의 공유 테이블에 대한 모든 참조를 중앙 데이터베이스에 대한 세 부분으로 된 이름 참조로 바꿀 수 있지만보기 방법은 작업이 덜 필요합니다.

+1

네, 그게 전부입니다. 나는 각 DB가 나 자신을 완전히 간과 한 테이블의 복사본을 가져야한다는 생각에 너무 빠져 들었다. 나는 SQL 서버에 익숙하지 않고 이런 식으로 테이블을 연결할 수 있다는 것을 몰랐다. 다시 한번 당신의 도움에 감사드립니다. –

관련 문제