본문 바로가기

DB

[MSSQL 2000]OPENQUERY 사용하기

연결된 서버(LINKED SERVER)로 구성된 원격 DB서버에서 필요한 데이터만 쿼리하여 결과를 가져오는 방법이다.

OPENQUERY(LINKEDSERVER,'연결된 서버내에서 실행할 쿼리문')
첫 번째 인자는 LINKED SERVER의 이름이며 작은 따옴표로 묶지 않는다.
두 번째 인자는 실제 쿼리문이며 작은 따옴표로 묶은 문자열이 된다.
그러므로 이 쿼리문 안에서 또 문자열을 써야한다면 아래 예제와 같이 작은 따옴표를 두 번 연달아 써준다.

LINKED SERVER를 ㅣ_SERVER라고 할 때,

SELECT	컬럼CC, 컬럼DD, 컬럼EE, 컬럼FF
FROM	OPENQUERY(L_SERVER,'
	SELECT	AA.컬럼CC, AA.컬럼DD, AA.컬럼EE, AA.컬럼FF
	FROM	테이블AA AA WITH (NOLOCK)
	INNER JOIN 테이블BB BB WITH (NOLOCK)
		ON AA.컬럼EE=BB.컬럼EE
		AND AA.컬럼FF=BB.컬럼FF
		AND AA.컬럼CC=BB.컬럼CC
		AND AA.컬럼DD=BB.컬럼DD
		AND CONVERT(CHAR(8),BB.컬럼DATETIME,112) BETWEEN ''20090701'' AND ''20090802''
		AND BB.컬럼EE = ''XV''
	')
이와 같이 쿼리하면 된다.