본문 바로가기

RDBMS/SQL Server

SQL Server에서 텍스트 파일의 내용 쿼리하기

데이터의 이전 작업을 하노라면 Log 데이터 등이 별로 중요하지 않은 경우에 텍스트 데이터 파일(txt, csv 등) 형태로 백업을 해서 데이터를 옮기는 경우가 있다. 이전 대상 데이터베이스가 원래의 데이터베이스와 다른 경우, 빠른 데이터 이전이 필요한 경우 등...

뭐 어찌됐건, 텍스트 파일을 데이터베이스에 넣을 경우가 있다. 이럴 경우 대부분 BULK INSERT 등으로 일단 텍스트의 데이터를 테이블에 넣은 다음 작업을 하게 되는데, 임시적인 데이터일 경우 텍스트 파일을 직접 쿼리할 수 있다.

예를 들어 다음과 같은 내용의 텍스트 파일이 c:\test.txt 경로에 있다고 가정하면 :
kim,a,100
lee,b,200
park,c,300
다음과 같은 쿼리문을 사용해서 조회가 가능하다 :
select * from OpenRowset(
 'MSDASQL',
 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=C:\;',
 'select * from test.txt')
사용자 삽입 이미지

결과


임시로 테이블을 만들기 귀찮을 경우에 사용해 보도록 하자.

p.s:위의 쿼리를 실행하기 위해서는 임시 분산 쿼리(Ad Hoc Distributed Queries)를 사용할 수 있도록 서버 구성을 변경해주어야 한다. 서버 구성을 변경하는 쿼리는 다음과 같다 :
sp_configure 'show advanced options', 1
go
RECONFIGURE
go
sp_configure 'Ad Hoc Distributed Queries', 1
go
RECONFIGURE
go