본문 바로가기
DATABASE/MsSQL

[MsSQL] Openquery select - 다른 데이터베이스 데이터 읽고 저장하기

by DANEW 2024. 4. 9.

Openquery

Linked Server (연결된 서버)를 통해 연결이 되어있는 데이터베이스 들에 대해 Openquery문법을 통해 서로 연결하여 DML을 실행 할 수 있다.

 

해당 문법에 대해서 알아보도록하며 요번 포스팅에서는 Openquery문법 중 Select문을 통해 다른 데이터베이스의 데이터를 읽고, 읽은 데이터를 저장하며 사용하는 방법에 대해서 소개해보도록 하겠다.

 

select

select *
  from openquery([Linked Server], '[select Query]')

 

연결된 서버(Linked Server)를 설정해둔 서버에 대해서 openquery문법을 통해 해당 데이터베이스의 테이블을 조회 할 수 있다.

[select query]에 들어가는 문법은 해당 연결된 서버의 데이터베이스에 맞는 문법을 사용해야한다.

반응형

특정 데이터만 조회하기 위해 where 절을 사용하거나, 집계를위해 group by를 사용하는 부분은 

[select Query] 부분에 쿼리에 추가하여 사용하거나,

openquery 를 포함하고 있는 쿼리에 추가하는 방법으로 사용 할 수 있다.

insert into ~ select

insert into [Insert Table Name]
select *
  from openquery([Linked Server], '[select Query]')

 

원하는 테이블에 연결된 서버로 연결된 테이블에 대해 insert into ~ select을 이용하여 데이터를 insert 할 수 있다.

당연한 이야기지만 insert되는 컬럼과 조회되는 컬럼의 수와 타입이 일치해야한다.

Select into

select *
  into [New Table Name]
  from openquery([Linked Server], '[select Query]')

 

select into 문을 통해 연결된 서버의 데이터베이스에서 조회되는 데이터를 바로 Table을 만들며 옮겨 올 수 있다.

반응형