본문 바로가기
DB/RDBMS

[MSSQL] OPENQUERY로 다른 DB 사용하기

by 소라둥이 2020. 4. 10.

MSSQL에서는 OPENQUERY를 사용하여 다른 DB의 접근과 사용이 가능하다.

즉, 다른 DB 서버에서 MSSQL 뿐만 아니라 MySQL, Oracle 등 원하는 DB를 제어할 수 있다.

 

 

- OPENQUERY의 기본적인 문법

OPENQUERY ([서버이름]'SELECT [컬럼명] FROM [테이블명]');

ex) OPENQUERY(SH_ORACLE, 'SELECT ID, PW FROM TBL_MEMBER)

​   - OPENQUERY에 오라클 MEMBER 테이블에서 가져온 데이터가 담기게 된다.

 

- OPENQUERY 데이터 조회

SELECT [컬럼명] FROM OPENQUERY ([서버이름]'SELECT [컬럼명] FROM [테이블명]');

ex) SELECT ID, PW FROM OPENQUERY(SH_ORACLE, 'SELECT ID, PW FROM TBL_MEMBER)

​   - 흔히 사용하는 서브쿼리랑 비슷하다고 생각하면 된다. 이 SQL은 실행 시 오라클에서 가져온 MEMBER의 ID와 PW를 보여준다.

 

- OPENQUERY 데이터 입력, 수정, 삭제

INSERT INTO OPENQUERY ([서버이름]'SELECT [컬럼명] FROM [테이블명]') VALUES ('[값]');

UPDATE OPENQUERY([서버이름]'SELECT [컬럼명] FROM [테이블명] WHERE [조건절]') SET [컬럼명] '[값]';

DELETE OPENQUERY ([서버이름]'SELECT [컬럼명] FROM [테이블명] WHERE [조건절]');

ex) INSERT INTO OPENQUERY(SH_ORACLE, 'SELECT ID, PW FROM TBL_MEMBER) VALUES('user123', 'aaa123')

​   - 실행 시 오라클의 MEMBER 테이블에 id: user123, pw: aaa123의 Row가 저장된다.

 

 

필요 시 상황에 맞게 변경해서 사용하면 될 듯 하다.

 

 

OPENQUERY를 찾아보다가 발견한 성능 이슈 해결 방법이 잘 소개되어있는 것 같다,

http://www.dator.co.kr/hjkim/91461

 

튜닝-MSSQL OPENQUERY을 이용한 경우

추천 스크랩 URL복사 MSSQL을 튜닝하다가 보면...

www.dator.co.kr

 

 

 

'DB > RDBMS' 카테고리의 다른 글

[MSSQL] OPENQUERY 대용량 DML 작업 시 문제점  (0) 2020.04.22
[MSSQL] OPENQUERY에 변수 사용 시 문제점 및 해결방법  (0) 2020.04.14
[MSSQL] IF-ESLE  (0) 2020.04.10
[MSSQL] DECLARE 변수 선언  (0) 2020.04.10
SQL 기초  (0) 2020.03.23