데이터 파일에는 테이블의 해당 열과 다른 순서로 정렬된 필드가 포함될 수 있습니다. 이 항목에서는 필드가 테이블 열과 다른 순서로 정렬된 데이터 파일을 수용하도록 수정된 비 XML 및 XML 서식 파일을 모두 보여 줍니다. 수정된 서식 파일은 데이터 필드를 해당 테이블 열로 매핑합니다.
비고
비 XML 서식 파일 또는 XML 서식 파일을 사용하여 bcp 명령, BULK INSERT 문 또는 INSERT ...를 사용하여 데이터 파일을 테이블로 대량으로 가져올 수 있습니다. SELECT * FROM OPENROWSET(BULK...) 문. 자세한 내용은 서식 파일을 사용하여 데이터 대량 가져오기(SQL Server)를 참조하세요.
샘플 테이블 및 데이터 파일
이 항목에서 수정된 형식 파일의 예제는 다음 테이블 및 데이터 파일을 기반으로 합니다.
샘플 테이블
이 항목의 예제에서는 스키마 아래 dbo AdventureWorks2012 샘플 데이터베이스에서 명명된 myTestOrder 테이블을 만들어야 합니다. 이 테이블을 만들려면 SQL Server Management Studio 쿼리 편집기에서 다음 코드를 실행합니다.
USE AdventureWorks2012;
GO
CREATE TABLE myTestOrder
(
Col1 smallint,
Col2 nvarchar(50) ,
Col3 nvarchar(50) ,
Col4 nvarchar(50)
);
GO
데이터 파일
데이터 파일은 myTestOrder-c.txt다음 레코드를 포함합니다.
DataField3,DataField2,1,DataField4
DataField3,DataField2,1,DataField4
DataField3,DataField2,1,DataField4
데이터를 myTestSkipCol 테이블로 대량 가져오려면, 서식 파일이 첫 번째 데이터 필드를 Col3, 두 번째 데이터 필드를 Col2, 세 번째 데이터 필드를 Col1, 네 번째 데이터 필드를 Col4에 매핑해야 합니다.
비 XML 서식 파일 사용
해당 데이터 필드의 위치를 나타내기 위해 열의 순서 값을 변경하여 열 매핑의 순서를 변경할 수 있습니다.
다음 샘플 비 XML 포맷 파일 myTestOrder.fmt은 myTestOrder-c.txt의 필드를 myTestOrder 테이블의 열에 매핑하는 서식 파일을 나타냅니다. 데이터 파일 및 테이블을 만드는 방법에 대한 자세한 내용은 이 항목의 앞부분에 있는 "샘플 테이블 및 데이터 파일"을 참조하세요. 형식 파일은 문자 데이터 형식을 사용합니다.
서식 파일에는 다음 정보가 포함됩니다.
9.0
4
1 SQLCHAR 0 100 "," 3 Col3 SQL_Latin1_General_CP1_CI_AS
2 SQLCHAR 0 100 "," 2 Col2 SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 7 "," 1 Col1 ""
4 SQLCHAR 0 100 "\r\n" 4 Col4 SQL_Latin1_General_CP1_CI_AS
비고
비 XML 서식 파일의 레이아웃에 대한 자세한 내용은 비 XML 서식 파일(SQL Server)을 참조하세요.
예시
다음 예제에서는 myTestOrder.fmt 비 XML 서식 파일을 사용하여 myTestOrder-c.txt 데이터 파일에서 myTestOrder 샘플 테이블로 데이터를 대량으로 가져오는 BULK INSERT 문을 사용합니다.
SQL Server Management Studio 쿼리 편집기에서 다음을 실행합니다.
USE AdventureWorks2012;
GO
BULK INSERT myTestOrder
FROM 'C:\myTestOrder-c.txt'
WITH (formatfile='C:\myTestOrder.fmt');
GO
XML 서식 파일 사용
다음 샘플 비 XML 서식 파일은 필드를 테이블의 myTestOrder 열에 myTestOrder-c.txt 매핑하는 서식 파일을 myTestOrder.xml제공합니다. 데이터 파일 및 테이블을 만드는 방법에 대한 자세한 내용은 이 항목의 앞부분에 있는 "샘플 테이블 및 데이터 파일"을 참조하세요.
myTestOrder.xml 서식 파일에는 다음 정보가 포함됩니다.
<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="7"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="3" NAME="Col1" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="Col2" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="1" NAME="Col3" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="Col4" xsi:type="SQLNVARCHAR"/>
</ROW>
</BCPFORMAT>
비고
XML 스키마 구문 및 XML 서식 파일의 추가 샘플에 대한 자세한 내용은 XML 서식 파일(SQL Server)을 참조하세요.
예시
다음 예제에서는 대량 행 집합 공급자를 사용하여 OPENROWSET XML 서식 파일을 사용하여 myTestOrder.xml 데이터 파일에서 myTestOrder-c.txt 샘플 테이블로 myTestOrder 데이터를 가져옵니다. 이 문은 INSERT... SELECT 선택 목록의 열 목록을 지정합니다.
SQL Server Management Studio 쿼리 편집기에서 다음 코드를 실행합니다.
USE AdventureWorks2012;
GO
INSERT INTO myTestOrder
SELECT Col1, Col2, Col3, Col4
FROM OPENROWSET(BULK 'C:\myTestOrder-c.txt',
FORMATFILE='C:\myTestOrder.Xml'
) AS t1;
GO
또한 참조하십시오
서식 파일을 사용하여 테이블 열 건너뛰기(SQL Server)
서식 파일을 사용하여 데이터 필드 건너뛰기(SQL Server)