MSSQL 테이블 데이터를 .sql 스크립트로 MySQL로 가져오기

MySQL의 마이그레이션 툴을 사용하면 손쉽게 데이터베이스 전체를 옮길 수도 있고, 테이블 단위로 데이터를 가져올 수도 있습니다.

문제는 그 이후인데, 업데이트된 테이블만, 또는 테이블 데이터의 일부만 가져와야 하는 경우 중간 파일인 엑셀 파일을 이용한 귀찮은 수작업을  해야 합니다.

MySQL이나 MariaDB는 DB백업이나 데이터 저장 이전 등을 위해 sql 스크립트 파일을 주로 사용합니다.

텍스트 파일이므로 용량이 커지지만 가독성이 좋기 때문에 수정하기가 용이해서 선호됩니다.

다행히도 MSSQL도 sql 파일로 테이블 구조 및 데이터를 내보낼 수 있는 기능을 제공합니다.

비록 사용 빈도가 너무 낮아서 대부분 잘 모르지만, 이 기능을 이용하면 엑셀 파일을 이용해 데이터를 옮기는 작업을 조금 수월하게 대신할 수 있습니다.

MSSQL 매니지먼트 스튜디오를 엽니다.

왼쪽 개체탐색기 창에서 데이터베이스를 선택해 팝업 메뉴를 연후 (마우스 오른쪽 버튼 클릭)

" 태스크-스크립트 생성을 선택합"니다.

스크립트 생성 및 게시 대화상자가 표시됩니다.

먼저 저장할 sql 파일 이름과 경로를 지정합니다.

중요한 부분입니다.

테이블 데이터만 sql문으로 옮길 것이므로 "고급" 버튼을 누르면 표시되는 옵션 설정 대화상자의 항목 목록들 중간쯤 에 "스크립팅할 데이터 형식" 항목에서 "데이터만"을 선택합니다.

"확인"을 눌러 닫습니다.

"다음 > "을 누르면 선택한 옵션 항목들에 대한 정보가 표시됩니다. 

"다음 > "을 눌러 진행합니다.

sql 스크립트 파일이 생성됩니다.

다시 중요한 부분이 나옵니다.

이 파일은 MSSQL 용 T-SQL 스크립트 파일이기 때문에 MySQL에서 그대로 사용할 수 없습니다.

텍스트 편집기에서 생성한 sql 파일을 엽니다.

두가지 수정작업을 해야 합니다.

1. 문자열 전체 바꾸기 기능으로 "[", "]", "dbo." 3개를 일괄 삭제 처리합니다.

2. 각 insert 실행문 끝에 ";" 을 붙입니다. 

이제 MySQL/MaridDB 쿼리창에서 이 sql 파일을 열어서 실행하면 됩니다.