20212021. 1. 4. 22:27

Windows 와 같이 Linux 운영체제 환경에서도 SQL Server command-line 툴을 설치하면 sqlcmd 및 bcp 툴을 사용할 수 있습니다. 아래 링크를 통해 SQL Server command-line tools on linux 버전을 배포본에 따라 설치할 수 있습니다.
Install SQL Server command-line tools on Linux - SQL Server | Microsoft Docs


bcp in 또는 bcp out 명령으로 데이터 파일을 table 에 import/export 할 수 있습니다. 아래 링크를 통해 간단한 예제를 제공합니다. 테스트 예제를 직접 따라해 봅니다.
Bulk copy data to SQL Server on Linux - SQL Server | Microsoft Docs



1. 데이터베이스와 테이블을 생성합니다.

create database BcpSampleDB 
go 

use BcpSampleDB
go

create table TestEmployees (Id int, EmpName nvarchar(50), Location nvarchar(50)) 
go


2. Linux Shell 에서 테이블에 import 할 샘플 파일을 생성합니다.

# cat > ~/sample_data.txt << EOF
1,laigo,Republic of Korea
2,Xingfei,China
3,Tom,Germany
EOF


3. bcp 명령으로 bulk copy 명령 수행 

bcp 명령에 대한 옵션은 아래와 같습니다. 

  • -S: specifies the instance of SQL Server to which to connect
  • -U: specifies the login ID used to connect to SQL Server
  • -P: specifies the password for the login ID
  • -d: specifies the database to connect to
  • -c: performs operations using a character data type
  • -t: specifies the field terminator. We are using comma as the field terminator for the records in our data file

# bcp TestEmployees in ~/sample_data.txt -S localhost -U sa  -d BcpSampleDB -c -t ','


4. sqlcmd 명령으로 import 완료된 데이터 확인 실행 과정 및 결과 캡쳐

# sqlcmd -S localhost -d BcpSampleDB -U sa -I -Q "SELECT * FROM TestEmployees;" 

[명령 실행 과정 및 결과]

 

Posted by Lai Go