2014-05-21 7 views
0

정확한 용어에 대해 너무 확신하지 못하기 때문에이 질문의 제목을 모르겠습니다. 그러나 동적 인 설정이 가능한지 알고 싶었습니다. 보기 내부의 데이터베이스 연결.
두 개의 다른 데이터베이스를 보는보기가 있습니다. 데이터베이스 이름이 다른 테이블에 저장됩니다, 그것은 것을 가질 수 있습니다,SQL Server 2012에서의 동적 SQL 연결

exampleView 
SELECT a.ID, b.name 
FROM db1.dbo.IDNumbers a 
INNER JOIN db2.dbo.Employees b ON a.ID = b.ID 

exampleView에서 데이터베이스가 db1.dbo 및 db2.dbo으로 하드 코딩되어 ... 열이 dbID1 및 dbID2라고 말할 수 db1 또는 db2는 다른 테이블의 값을 기반으로 동적으로 설정합니까? 나는 이것이 아마도 어리석은 예라고 생각하지만 그것은 단지 설명하는 것입니다.

+0

입력 매개 변수 (예 : 문자열)로 데이터베이스 이름을 사용 하시겠습니까? –

+0

솔직히 말해서 나는 이것을 수행하는 방법을 찾기 시작하는 법을 정말로 모릅니다 ... 내가 생각할 수있는 최선의 방법은 다음과 같습니다. FROM (SELECT dbID1 FROM settings) .IDNumber –

답변

0

요청을 문자열 (NVARCHAR (MAX))로 작성한 다음 EXEC를 실행해야합니다.

DECLARE @myRequest NVARCHAR(MAX) 
SELECT @myRequest = SELECT 'SELECT * FROM (' + dbID1 + ').IDNumbers' FROM settings WHERE key = 'TableName' 
EXEC (@myRequest) 

희망이 있습니다.