2011-09-21 5 views
2

하나의 .mdb Microsoft Access 데이터베이스를 사용하는 하나의 .exe 응용 프로그램이 있습니다.연결된 서버를 사용하여 SQL Server에서 Microsoft Access 데이터베이스 노출

Microsoft SQL Server를 통해 액세스 파일 안의 데이터에 액세스해야합니다. 우리는이 Access 파일을 가리키는 서버가 연결된 SQL Server 2008 R2 Enterprise를 가지고 있으며 SQL 문을 사용하여 select/update 쿼리를 실행할 수 있습니다.

SELECT * FROM [LinkedServerAccessDB]...[SomeTable] 

어떻게 어떤 응용 프로그램이 SQL Server 인스턴스 이름 및 사용자 이름과 암호를 사용하여 내 SQL 서버에 연결을 시도 할 때이 연결된 서버, 내 Access 데이터베이스가 직접 "데이터베이스"로 게시되는 것을 구성 할 수 있습니다. 직접 연결된 서버를 사용하려면 어떤 "데이터베이스 이름"을 사용해야합니까?

은 (SSMS의 '데이터베이스'폴더에있는 즉, 사용 가능) 데이터베이스와 같은 MS 액세스 연결된 서버 개체를 사용할 수 원하는처럼 당신이

+1

+1 @ p.campbell의 대답은 아래에 나와 있습니다.하지만 왜 SQL Server 구성 요소가 필요한지 궁금합니다. 응용 프로그램에서 Access 파일에 직접 연결하지 않으려는 이유가 있습니까? – Bryan

+0

안녕하세요, 네,이 Access 파일에서 데이터에 액세스해야하는 몇 가지 응용 프로그램은 직접 MSSQL 만 지원하며 현재 데이터에 원본으로 남겨 둘 필요가있는 MSSQL으로 모든 데이터를 변경할 수는 없습니다. 감사합니다 –

답변

3

그것은 소리 감사합니다. 이것은 직접 가능하지 않습니다.

해당 Access 데이터베이스의 이름을 모방 한 새 SQL Server 데이터베이스를 만드는 것이 좋습니다. 위에있는 로그인으로 사용자를 매핑하십시오. 사용자가 연결된 서버에 대해 쿼리를 실행할 수 있습니다.

+0

좋아, 내가 새로운 SQL 데이터베이스를 만들 때, 나는 모방을 만들고 맵에 로그인하여 어떻게 액세스 할 수 있습니까? 내 응용 프로그램은 표준 MSSQL 만 지원해야하며 데이터가 현재 모양/액세스 데이터베이스에 남아 있어야합니다 (다른 이유로). 감사합니다. –

1

CREATE SYNONYM처럼 사용할 수 있습니다. 이 번

USE ASQLServerDB 
GO 

CREATE SYNONYM Sometable FOR LinkedServerAccessDB...SomeTable 

는 ASQLServerDB

데이터베이스의 일원이었다 것처럼 당신이

내가에만이 작업을 수행해야합니다 있도록 개체 수준에서 작동하도록 얻을 수 있었다 SELECT [...] from SomeTable를 작성할 수 이루어집니다 노출하려는 각 개체에 대해 당신은 "데이터베이스로 출판 된"느낌을 얻고 싶다면이 동의어들을 포함하고있는 빈 데이터베이스를 만들 수 있습니다.

--This doesn't work 
CREATE SYNONYM Sometable FOR LinkedServerAccessDB... 
+0

안녕하십니까, 하나의 테이블에 대해 수동으로 synonim을 만들었습니다. 감사합니다. 많은 쿼리를 선택하고 업데이트하면 정상적으로 작동합니다. 그러나 내 응용 프로그램은 동의어가 아닌 "테이블"을 사용하므로 BCS 또는 다른 응용 프로그램과 함께 Sharepoint에서 데이터를 사용할 수 없습니다. 어떻게 든 MSSQL 관리 스튜디오의 "테이블"부분에 동의어를 표시 할 수 있습니까? 고맙습니다 –

관련 문제