강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

[MSSQL] OPENROWSET
작성자 : 13 김영철
등록날짜 : 2009.01.23 00:30
2,958

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' }
    )

인수

'provider_name'

레지스트리에 지정된 OLE DB 공급자의 이름을 나타내는 문자열입니다. provider_name에는 기본값이 없습니다.

'datasource'

특정 OLE DB 데이터 원본에 해당되는 문자열 상수입니다. datasource는 공급자의 IDBProperties 인터페이스에 전달되어 공급자를 초기화하는 DBPROP_INIT_DATASOURCE 속성입니다. 일반적으로 이 문자열에는 데이터베이스 파일의 이름, 데이터베이스 서버의 이름 또는 공급자가 데이터베이스의 위치를 알 수 있는 이름이 포함됩니다.

'user_id'

지정된 OLE DB 공급자에게 전달되는 사용자 이름인 문자열 상수입니다. user_id는 연결에 필요한 보안 컨텍스트를 지정하며 DBPROP_AUTH_USERID 속성으로 전달되어 공급자를 초기화합니다.

'password'

OLE DB 공급자에게 전달되는 사용자 암호인 문자열 상수입니다. password는 공급자를 초기화할 때 DBPROP_AUTH_PASSWORD 속성으로 전달됩니다.

'provider_string'

DBPROP_INIT_PROVIDERSTRING 속성으로 전달되어 OLE DB 공급자를 초기화하는 공급자별 연결 문자열입니다. provider_string은 일반적으로 공급자를 초기화하는 데 필요한 모든 연결 정보를 캡슐화합니다.

catalog

지정한 개체가 있는 카탈로그 또는 데이터베이스의 이름입니다.

schema

지정된 개체에 대한 스키마 또는 개체 소유자의 이름입니다.

object

조작할 개체를 고유하게 식별하는 개체 이름입니다.

'query'

공급자에게 보내져 공급자에 의해 실행되는 문자열 상수입니다. Microsoft? SQL Server™는 이 쿼리는 처리하지 않지만 공급자에 의해 반환되는 쿼리 결과는 처리합니다(통과 쿼리). 통과 쿼리는 테이블 이름을 통해 테이블 형식의 데이터를 표시하지는 않고, 명령 언어를 통해 표시하는 공급자에서 사용할 때만 유용합니다. 쿼리 공급자가 OLE DB Command 개체와 필수 인터페이스를 지원하는 하는 경우 원격 서버에서 통과 쿼리가 지원됩니다. 자세한 내용은 SQL Server OLE DB Programmer's Reference를 참조하십시오.

비고

OLE DB 공급자가 지정된 데이터 원본에서 여러 카탈로그와 스키마를 지원하는 경우에는 카탈로그 이름과 스키마 이름이 필요합니다. OLE DB 공급자가 카탈로그와 스키마를 지원하지 않는 경우에는 catalogschema에 대한 값을 생략할 수 있습니다.

공급자가 스키마 이름만 지원하는 경우에는 schema.object 형식의 두 부분으로 된 이름을 반드시 지정해야 합니다. 공급자가 카탈로그 이름만 지원하는 경우에는 catalog.schema.object 형식의 세 부분으로 된 이름을 반드시 지정해야 합니다.

OPENROWSET은 변수를 인수로 받아들이지 않습니다.

사용 권한

OPENROWSET 권한은 OLE DB 공급자에게 전달되는 사용자 이름의 권한에 의해 결정됩니다.

예제
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 테이블을 액세스하는 예제입니다.

?mk:@MSITStore:D:Program%20FilesMicrosof

참고   다음 예제는 Access가 설치된 것을 전제로 합니다.

USE pubs GO SELECT a.* FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders) AS a GO
D. OPENROWSET과 다른 테이블을 INNER JOIN으로 사용

다음은 로컬 SQL Server Northwind 데이터베이스의 customers 테이블과 동일한 컴퓨터에 저장된 Access Northwind 데이터베이스의 orders 테이블에서 모든 데이터를 선택하는 예제입니다.

?mk:@MSITStore:D:Program%20FilesMicrosof

참고   다음 예제는 Access가 설치된 것을 전제로 합니다.

USE pubs GO SELECT c.*, o.* FROM Northwind.dbo.Customers AS c INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders) AS o ON c.CustomerID = o.CustomerID GO 

[출처]  웹디황용

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2775 동적 테이블 생성 DHTML 99 단국강토 02.09 2987
2774 PHP 환경 설정을 변경하는 방법 13 김영철 01.14 2986
2773 MS SQL 서버 확장 스토어드 프로시저 만들기 13 김영철 01.23 2986
2772 제로보드 스킨 - 공지사항 겸 메모장 10 액션쟁이 12.29 2984
2771 모서리 둥근 입체 버튼 만들기 M 최고의하루 12.18 2983
2770 MSSQL DBA GUIDE - 테이블 관리 13 김영철 01.23 2983
2769 SQL : Categories : 뷰(View). 13 김영철 01.23 2982
2768 APM에서 utf-8 구현 방법 13 김영철 01.14 2979
2767 옛날 기사를 찾아보고 싶을때 99 단국강토 01.08 2979
2766 서로 다르게 CSS소스 적용하는 방법 99 단국강토 02.10 2978
2765 mysql 테이블 스키마 보는법 13 김영철 01.29 2978
2764 ssh 재시작(각종 변곃후) 13 김영철 01.29 2978
2763 항상 새로 고침 13 김영철 01.14 2973
2762 썸네일 만들기 13 김영철 01.14 2971
2761 윈도우 단축키 2 찡가 01.12 2970
2760 [PHP-SRC] SMTP Mail Class 13 김영철 01.14 2969
2759 데이터베이스 만들기 13 김영철 01.23 2969
2758 숫자앞에 0붙이기 13 김영철 01.14 2969
2757 TFS Setup 13 김영철 01.23 2968
2756 자바스크립트 활용도 높은 소스 Tip 모음 99 단국강토 02.16 2965
2755 외각선따내기 10 액션쟁이 12.31 2964
2754 MS-SQL에서 개선된 페이징 쿼리 13 김영철 01.23 2963
2753 윈도우2003 서버 SP1 환경에서 IIS에 php 설치 하기 M 최고의하루 12.18 2962
2752 tar 압축법 13 김영철 01.29 2962
2751 하루전 날짜(시간) 또는 날짜 구하기 13 김영철 01.14 2961
2750 관리자 화면 기본환경설정페이지 (adm/config_form.php) M 최고의하루 12.19 2960
열람중 [MSSQL] OPENROWSET 13 김영철 01.23 2959
2748 CSS] 기본문법 - id(#)는 한번사용, class(.)는 반복 99 단국강토 02.03 2957
2747 다음부터..창띄우지않기[쿠키이용] 99 단국강토 02.10 2956
2746 요일 구하기 함수 13 김영철 01.14 2956
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취