프로그래밍/DB

[DB] MSSQL 데이터가져오기,내보내기(엑셀가져오기,엑셀내보내기)

ss-pro 2020. 10. 12. 22:54
반응형

SQL Management 툴을이용하여 외부자료를 가져오는 방법과 내보내기 하는 방법에 대해서 알아보도록 하겠습니다. 
아래순서대로 하는 방법에 대하여 알아보도록 하겠습니다. 

데이터 가져오기,내보내기 요약
1. 데이터베이스선택 
2. 데이터원본선택 :  MssqlServer,Excel등
3.대상선택 : MssqlServer,Excel등 
4.테이블복사 또는 쿼리지정 : 하나이상의 테이블 및 뷰를 복사할지 아니면 쿼리결과로 복사할지선택
5.원본테이블 및 뷰선택  : 복사할데이터선택작업
6.작업시작

먼저 테스트DB를 다운로드 받아서 테스트 해보도록 하겠습니다.
테스트DB다운로드 경로
docs.microsoft.com/ko-kr/sql/samples/adventureworks-install-configure?view=sql-server-ver15&tabs=ssms

1. MSSQL DB자료 가져오기/내보내기
서로다른 데이터베이스간의 자료 가져오기 및 내보내기방법입니다. 원격지에 DB가 있을경우도 있고 같은서버에서 자료를 이관할때도 있습니다. 방법은 동일하며 IP 및 DB지정하는부분만 다릅니다. 같은서버에서 신규데이터베이스로 이동하는 부분으로 설명드리겠습니다. AdventureWorksLT2017 DB를 AdventureWorksLT2017_New로 데이터를 이관해보겠습니다.  원본데이터베이스 -> 테스크 -> DB가져오기/내보내기를 선택합니다.

가져오기/내보내기 메뉴를 실행하면 항상 데이터원본 선택이 나타납니다. 먼저 원본자료를 선택합니다. 데이터원본에는 SQL Server Native Client 11.0을 클릭합니다. 가져오기/내보내기 하고싶은 원본DB선택 후 다음을 클릭합니다.

복사하고자 하는 대상을 선택합니다. 이때 원격지로 하고싶은경우에는 서버이름에 원격지 DB 아이피를 입력하면됩니다. 같은서버의 AdventureWorksLT2017_New DB로 이동할 예정이여서 아래와 같이 로컬IP와 Windows인증으로 로그인 후 AdventureWorksLT2017_New서버를 선택후 다음을 클릭합니다. 

이제 데이터를 어떤식으로 복사할지에 대해서 지정합니다. 
하나이상의 테이블 또는 뷰에서 데이터복사 : 테이블/뷰 전체데이터에 대하여 모든 복사할때 사용합니다. 
전송데이터를 지정할 쿼리작성 : 전송하고자 하는데이터를 쿼리문으로 작성하여 내보내기를 진행합니다.

매핑편집키를 사용해서 기존데이터를 삭제 후 재전송하거나 ID값(자동증가열)이 있는데이터를 기존ID값과 동일하게 전송할수 있도록 설정할수 있습니다. 

설정완료후 다음 버튼을 클릭하면 원본데이터가 복사대상쪽으로 전송되는부분을 확인할수 있습니다. 

쿼리지정하여 내보내기
[SalesLT].[SalesOrderDetail]테이블의 ProductID값이 810인자료에 대해서만 가져와보도록 하겠습니다. 먼저 AdventureWorksLT2017_New 데이터베이스의 기존데이터를 삭제합니다.

1
  delete from [AdventureWorksLT2017_New].[SalesLT].[SalesOrderDetail]

전송데이터를 지정할 쿼리작성을 선택합니다. 해당이전부분은 위와 동일하게 진행하면됩니다. 

복사하고싶은 데이터의 조회 결과를 쿼리문으로 입력합니다. 

아래와 같이 대상이 기본적으로 [dbo].[쿼리] 이렇게 나옵니다. 이대로 진행하면 [쿼리]라는 테이블이 생성되고 조회결과가 해당테이블로 복사됩니다. 대상항목에 복사될 테이블을 선택해주면 됩니다. [SalesLT].[SalesOrderDetail] 테이블로 복사할 예정이여서 아래와 같이 선택해주면됩니다. 매핑편집을 하고싶을때는 매핑편집을 눌러서 진행하면됩니다. 
나머지는 위에 하나이상의 테이블 또는 뷰에서 데이터복사와 동일합니다.

 

2. EXCEL 자료 가져오기/내보내기
이번에는 엑셀데이터로 내보내기 하는방법에 대해 알아보도록 하겠습니다. 데이터원본을 어떤걸 설정할지만 다르며 나머지 동작들은 동일합니다.  데이터원본을 엑셀파일로 선택하면 엑셀데이터를 가져와서 DB로 넣을수도 있습니다. 

대상선택을 Microsoft Excel로 선택합니다. 내보내는 엑셀파일명을 선택합니다. Excel버전을 선택합니다. Excel버전은 MSSQL버전별로 지원가능한 부분에 차이가 있습니다. Excel 2016으로 내보내기를 해보도록 하겠습니다. 

나머지부분은 "1. MSSQL DB자료 가져오기/내보내기"과 동일하기때문에 설명을 생략하도록 하겠습니다. 결과를 확인해보면 테이블이 엑셀시트명으로 구분되어서 저장되는것을 확인할수 있습니다.