OPENROWSET로 원격데이터 가져오기
페이지 정보
작성자 서방님 댓글 0건 조회 164회 작성일 06-09-13 11:25본문
OPENROWSET
OLE DB 데이터 원본에서 원격 데이터를 액세스하는 데 필요한 모든 연결 정보를 포함합니다.
이 방법은 OLE DB를 사용하여 원격 데이터에 연결하고 액세스하는 일회성의 임시 방법이며
연결된 서버에서 테이블을 액세스하는 방법의 대체 방법입니다.
OPENROWSET 함수는 테이블 이름인 것처럼 쿼리의 FROM 절에서 참조할 수 있습니다.
또한 OLE DB 공급자의 기능에 따라 INSERT, UPDATE, DELETE 문의 대상 테이블로도
OPENROWSET 함수를 참조할 수 있습니다.
쿼리는 여러 결과 집합을 반환하지만 OPENROWSET는 첫 번째 것만 반환합니다.
[구문]
OPENROWSET
(
'provider_name',
{ 'datasource' ; 'user_id' ; 'password' | 'provider_string' },
{ [ catalog. ] [ schema. ] object | 'query' }
)
[예제]
A. SELECT, Microsoft OLE DB Provider for SQL Server와 함께 OPENROWSET 사용
다음은 Microsoft OLE DB Provider for SQL Server를 사용하여 seattle1이라는 원격 서버에 있는 pubs 데이터베이스의 authors 테이블을 액세스하는 예제입니다.
공급자는 datasource, user_id, password에서 초기화되며 반환되는 행 집합을 정의하기 위해 SELECT가 사용됩니다.
USE pubs
GO
SELECT a.*
FROM OPENROWSET('SQLOLEDB','seattle1';'sa';'MyPass',
'SELECT * FROM pubs.dbo.authors ORDER BY au_lname, au_fname') AS a
GO
B. 개체와 ODBC용 OLE DB 공급자와 함께 OPENROWSET 사용
다음은 ODBC용 OLE DB 공급자와 SQL Server ODBC 드라이버를 사용하여 seattle1이라는 원격 서버에 있는 pubs 데이터베이스의 authors 테이블을 액세스하는 예제입니다.
공급자는 ODBC 공급자가 사용하는 ODBC 구문에서 지정된 provider_string으로 초기화되며, 반환되는 행 집합은 catalog.schema.object 구문을 사용하여 정의됩니다.
USE pubs
GO
SELECT a.*
FROM OPENROWSET('MSDASQL',
'DRIVER={SQL Server};SERVER=seattle1;UID=sa;PWD=MyPass',
pubs.dbo.authors) AS a
ORDER BY a.au_lname, a.au_fname
GO
C. Microsoft OLE DB Provider for Jet 사용
다음은 Microsoft OLE DB Provider for Jet을 사용하여 Microsoft Access Northwind 데이터베이스의 orders 테이블을 액세스하는 예제입니다.
* 참고 : 다음 예제는 Access가 설치된 것을 전제로 합니다.
USE pubs
GO
SELECT a.*
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:MSOfficeAccessSamplesnorthwind.mdb';'admin';'mypwd', Orders)
AS a
GO
D. OPENROWSET과 다른 테이블을 INNER JOIN으로 사용
다음은 로컬 SQL Server Northwind 데이터베이스의 customers 테이블과 동일한 컴퓨터에 저장된 Access Northwind 데이터베이스의 orders 테이블에서 모든 데이터를 선택하는 예제입니다.
* 참고 : 다음 예제는 Access가 설치된 것을 전제로 합니다.
USE pubs
GO
SELECT c.*, o.*
FROM Northwind.dbo.Customers AS c INNER JOIN
OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:MSOfficeAccessSamplesnorthwind.mdb';'admin';'mypwd', Orders)
AS o
ON c.CustomerID = o.CustomerID
GO
더자세한 사항은 SQL Server 설명서를 참고하세요.
댓글목록
등록된 댓글이 없습니다.