[MSSQL] OPENQUERY로 다른 DB 사용하기
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