[DBMS] SQL SERVER 엑셀 업로드

류재성's avatar
Oct 26, 2024
[DBMS] SQL SERVER 엑셀 업로드
 
 
💡
SQL Server Management Studio 를 활용해 다량의 엑셀 데이터를 테이블에 insert 해보자.
 

1. 테이블 생성

 
CREATE TABLE EXCEL_UPLOAD ( emp_no varchar(10), emp_name varchar(100), hire_date date, dept_code varchar(10), position varchar(30), salary int )
 
테스트를 위해 테이블을 생성한다.
 
 
emp_no
emp_name
hire_date
dept_code
position
salary
E001
Alice
2023-01-10
D01
Manager
80000
E002
Bob
2022-11-05
D02
Analyst
60000
E003
Charlie
2021-05-15
D01
Developer
75000
E004
David
2020-12-22
D03
Clerk
50000
E005
Eva
2023-06-30
D02
Manager
85000
 
그리고 테이블에 넣을 테이블을 엑셀로 만든다.
 
 

2. 데이터 가져오기

 
notion image
 
현재 master 데이터베이스에 테이블이 생성되어있다.
 
notion image
 
데이터베이스에서 마우스 우클릭 - 태스크 - 데이터 가져오기를 선택한다.
 
notion image
 
가져오기 마법사에서 다음을 선택한다.
 
notion image
 
데이터 원본에 엑셀을 선택 후 엑셀 파일의 경로를 넣는다.
아래 사진과 같이 엑셀의 첫 행을 컬럼 명을 사용했기 때문에 ‘첫 행은 열 이름으로’를 체크한다.
 
notion image
 
 
 
notion image
 
그 다음으로 복사할 대상을 선택한다. SQL SERVER 를 선택 후 인증방법과 데이터베이스를 선택한다.
 
 
notion image
 
하나 이상의 테이블 또는 뷰에서 데이터 복사 선택한다.
 
notion image
 
대상 테이블명은 생성한 테이블명에 맞게 수정한다. 만약 이름이 다르다면 새로운 테이블이 생성되게 된다.
 
notion image
notion image
 
매핑 정보를 들어갔을 때 대상에 테이블명이 있다면 행을 추가하도록 설정되며, 테이블명이 일치하는게 없다면 새로운 테이블이 생성되게 된다.
 
notion image
 
다음을 선택한다.
 
 
notion image
 
즉시 실행을 선택한다.
 
 
notion image
 
실행이 완료되었다.
 
SELECT * FROM EXCEL_UPLOAD
 
notion image
 
쿼리를 실행했을 때 엑셀의 데이터가 정상적으로 테이블에 입력된 것을 확인할 수 있다.
 

3. 'Microsoft.ACE.OLEDB.12.0' 공급자는 로컬 컴퓨터에 등록할 수 없습니다. (System.Data)

 
notion image
 
💡
데이터 원본 복사를 할 때 해당 오류가 발생할 수 있다. 이 오류는 64비트 Office 프로그램을 사용하고 있어 64비트 용 OLE DB 제공자가 설치되어있으나, 32비트 프로그램인 Visual Studio 에서는 해당 제공자를 찾을 수 없음을 의미한다.
 
 
따라서 위의 링크에서 32비트 엔진을 설치해야 한다.
 
notion image
 
cmd - cd downloads (accessdatabaseengine.exe) 가 설치되어있는 경로 - accessdatabaseengine.exe /passive 를 입력한다.
 
notion image
 
32버전이 설치가 되지 않는다.
 
 
이런 경우는 이미 64비트가 설치되어있기 때문에 설치가 되지 않는 것이다. 해결법은 공식 문서처럼 모든 엔진을 삭제 후 재설치 해야 한다.
 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Common\FilesPaths
 
레지스트리 편집기에서 위의 경로로 이동한다.
 
notion image
 
경로에서 mso.dll 가 있다면 엔진을 삭제해주어야 한다.
 
제어판에서 office 를 삭제후 32비트를 설치 완료하면 된다.
 
notion image
 
그리고 다시 데이터 가져오기를 하면 다음으로 넘어가는 것을 확인할 수 있다.
Share article

{CODE-RYU};