SQL-Server의 테이블을 TXT 파일로 출력하는 방법에 대해 설명한다.
해당 기능을 사용하기 위해 bcp.exe(bulk copy program utility)가 필요하며, 이는 SSMS나 SQL-Server를 설치하면 자동으로 설치된다.
먼저 본인의 pc에 bcp.exe가 존재하는 지 확인하기 위해서는 2가지 방법 중 한가지를 선택하여 확인한다.
- CMD 창에서 BCP입력
- 프로그램의 설치 경로에 접근하여 확인
설치가 되어 있다면, SSMS에서 실행하거나 cmd 창에서 실행을 통해 텍스트 파일을 추출할 수 있다
[SSMS에서 실행시]
-- xp_cmdshell 옵션을 활성화 (xp_cmdshell : SSMS에서 cmd창에 입력하듯이 사용하게 해주는 프로그램)
SP_CONFIGURE 'XP_CMDSHELL', 1
GO
RECONFIGURE WITH OVERRIDE
GO
SP_CONFIGURE
GO
-- BCP 실행
EXEC xp_cmdshell 'bcp "SELECT * FROM [인스턴스명].dbo.[테이블명]" queryout "D:\BCPTest.txt" -S -T -c'
[CMD 창에서 실행시 : 테이블을 txt 파일로 추출]
bcp [인스턴스명].dbo.[테이블명] out D:\BCPTest2.txt -T -c
[CMD 창에서 실행시 : 쿼리를 txt 파일로 추출]
// 기본 문법
bcp "SELECT * FROM [인스턴스명].dbo.[테이블명]" queryout "D:\BCPTest2.txt" -T -c -S [서버명] -U [아이디] -P [비밀번호] -t [필드종결자] -r [행종결자]
// CSV 파일 형태로 텍스트 파일을 추출할 때
bcp "SELECT * FROM [인스턴스명].dbo.[테이블명]" queryout "D:\BCPTest2.txt" -T -c -S [서버명] -U [아이디] -P [비밀번호] -t "," -r "\n"
// 탭으로 구분된 형태의 텍스트 파일 형태로 추출하고자 할때
bcp "SELECT * FROM [인스턴스명].dbo.[테이블명]" queryout "D:\BCPTest2.txt" -T -c -S [서버명] -U [아이디] -P [비밀번호] -t "\t" -r "\n"
예를들어 필드 구분과 행 구분을 원하는 형태대로 설정하고자 한다면 -t 옵션과 -r 옵션을 조절하여 추출한다.
'DBMS > SQL-SERVER' 카테고리의 다른 글
SQL Server 기본키 없이 인덱스가 존재할 때 (0) | 2020.11.17 |
---|---|
SQL-Server 성능 최적화 (tempdb) (0) | 2020.11.04 |
SQL Server (MS-SQL) 비트마스크(bitMask) 활용 (0) | 2020.10.30 |
SQL Server(MS-SQL) 날짜 및 시간의 변경 방법(datetime) (0) | 2020.10.29 |
SQL Server(MS-SQL) 현재 날짜와 시간 가져오기 (0) | 2020.10.24 |