서식 파일 만들기
SQL Server 테이블에 데이터를 대량으로 가져오거나 테이블의 데이터를 대량으로 내보내는 경우 서식 파일을 사용하면 해당 테이블을 기준으로 데이터 파일에 각 필드에 대한 서식 정보를 저장할 수 있습니다. 서식 파일을 사용하면 다른 데이터 형식과 맞추기 위한 편집 작업이 거의 필요 없는 데이터 파일을 작성하거나 다른 소프트웨어의 데이터 파일을 읽는 작업을 유연하게 수행할 수 있습니다.
SQL Server 2005 이상 버전에서는 두 유형의 서식 파일, 즉 비 XML 서식 파일과 XML 서식 파일을 지원합니다. 비 XML 서식 파일은 이전 버전의 SQL Server에서 원래 지원했던 서식 파일입니다.
일반적으로 XML 서식 파일과 비 XML 서식 파일은 서로 전환이 가능하지만 새 서식 파일에는 비 XML 서식 파일에 비해 여러 가지 장점이 있는 XML 구문을 사용하는 것이 좋습니다. 자세한 내용은 서식 파일 소개를 참조하십시오.
[!참고]
서식 파일을 읽는 데 사용되는 bcp 유틸리티(Bcp.exe)의 버전은 서식 파일을 만드는 데 사용되는 버전 이상이어야 합니다. 예를 들어 SQL Server 2008bcp는 SQL Server 2005bcp에서 생성된 버전 9.0 서식 파일을 읽을 수 있지만 SQL Server 2005bcp는 SQL Server 2008bcp에서 생성된 버전 10.0 서식 파일을 읽을 수 없습니다.
이 항목에서는 bcp 유틸리티를 사용하여 특정 테이블에 대한 서식 파일을 만드는 방법에 대해 설명합니다. 서식 파일은 지정된 데이터 형식 옵션(-n, -c, -w 또는 -N)과 테이블 또는 뷰 구분 기호를 기반으로 합니다.
비 XML 서식 파일 만들기
bcp 명령을 사용하여 서식 파일을 만들려면 데이터 파일 경로 대신 format 인수를 지정하고 nul을 사용합니다. format 옵션에는 다음과 같이 -f 옵션도 필요합니다.
bcptable_or_viewformat nul -fformat_file_name
[!참고]
비 XML 서식 파일을 구분하기 위해 파일 이름 확장명으로 .fmt를 사용하는 것이 좋습니다(예: MyTable.fmt).
비 XML 서식 파일의 구조 및 필드에 대한 자세한 내용은 비 XML 서식 파일 이해를 참조하십시오.
예
이 섹션에는 bcp 명령을 사용하여 비 XML 서식 파일을 만드는 방법을 보여 주는 다음 예가 포함되어 있습니다.
1. 네이티브 데이터용 비 XML 서식 파일 만들기
2. 문자 데이터용 비 XML 서식 파일 만들기
3. 유니코드 네이티브 데이터용 비 XML 서식 파일 만들기
4. 유니코드 문자 데이터용 비 XML 서식 파일 만들기
다음 예에서는 AdventureWorks 예제 데이터베이스의 HumanResources.Department 테이블을 사용합니다. HumanResources.Department 테이블에는 DepartmentID, Name, GroupName 및 ModifiedDate의 4개 열이 있습니다. 이 테이블의 정의에 대해서는 Department 테이블(AdventureWorks)을 참조하십시오.
[!참고]
Adventure Works Cycles는 데이터베이스 개념 및 시나리오를 설명하는 데 사용되는 가상 제조 회사입니다.
1. 네이티브 데이터용 비 XML 서식 파일 만들기
다음 예에서는 AdventureWorksHumanResources.Department 테이블에 대한 Department-n.xml XML 서식 파일을 만듭니다. 서식 파일은 네이티브 데이터 형식을 사용합니다. 생성된 서식 파일의 내용은 명령 뒤에 표시됩니다.
bcp 명령에는 다음 한정자가 포함됩니다.
한정자 |
설명 |
---|---|
formatnul-fformat_file |
비 XML 서식 파일을 지정합니다. |
-n |
네이티브 데이터 형식을 지정합니다. |
-T |
bcp 유틸리티가 통합 보안을 사용하는 트러스트된 연결을 통해 SQL Server로 연결되도록 지정합니다. -T가 지정되어 있지 않을 경우 성공적으로 로그인하려면 -U와 -P를 지정해야 합니다. |
Windows 명령 프롬프트에 다음 bcp 명령을 입력합니다.
bcp AdventureWorks.HumanResources.Department format nul -T -n -f Department-n.fmt
생성된 Department-n.fmt 서식 파일에는 다음 정보가 포함됩니다.
9.0
4
1 SQLSMALLINT 0 2 "" 1 DepartmentID ""
2 SQLNCHAR 2 100 "" 2 Name SQL_Latin1_General_CP1_CI_AS
3 SQLNCHAR 2 100 "" 3 GroupName SQL_Latin1_General_CP1_CI_AS
4 SQLDATETIME 0 8 "" 4 ModifiedDate ""
자세한 내용은 비 XML 서식 파일 이해를 참조하십시오.
2. 문자 데이터용 비 XML 서식 파일 만들기
다음 예에서는 AdventureWorksHumanResources.Department 테이블에 대한 Department.fmt XML 서식 파일을 만듭니다. 서식 파일은 문자 데이터 형식 및 기본이 아닌 필드 종결자(,)를 사용합니다. 생성된 서식 파일의 내용은 명령 뒤에 표시됩니다.
bcp 명령에는 다음 한정자가 포함됩니다.
한정자 |
설명 |
---|---|
formatnul-fformat_file |
비 XML 서식 파일을 지정합니다. |
-c |
문자 데이터를 지정합니다. |
-T |
bcp 유틸리티가 통합 보안을 사용하는 트러스트된 연결을 통해 SQL Server로 연결되도록 지정합니다. -T가 지정되어 있지 않을 경우 성공적으로 로그인하려면 -U와 -P를 지정해야 합니다. |
Windows 명령 프롬프트에 다음 bcp 명령을 입력합니다.
bcp AdventureWorks.HumanResources.Department format nul -c -f Department-c.fmt -T
생성된 Department-c.fmt 서식 파일에는 다음 정보가 포함됩니다.
9.0
4
1 SQLCHAR 0 7 "\t" 1 DepartmentID ""
2 SQLCHAR 0 100 "\t" 2 Name SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 100 "\t" 3 GroupName SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0 24 "\r\n" 4 ModifiedDate ""
자세한 내용은 비 XML 서식 파일 이해를 참조하십시오.
3. 유니코드 네이티브 데이터용 비 XML 서식 파일 만들기
HumanResources.Department 테이블을 위한 유니코드 네이티브 데이터용 비 XML 서식 파일을 만들려면 다음 명령을 사용합니다.
bcp AdventureWorks.HumanResources.Department format nul -T -N -f Department-n.fmt
유니코드 네이티브 데이터 사용 방법은 데이터를 가져오거나 내보내기 위해 유니코드 네이티브 형식 사용을 참조하십시오.
4. 유니코드 문자 데이터용 비 XML 서식 파일 만들기
기본 종결자를 사용하는 HumanResources.Department 테이블을 위한 유니코드 문자 데이터용 비 XML 서식 파일을 만들려면 다음 명령을 사용합니다.
bcp AdventureWorks.HumanResources.Department format nul -T -w -f Department-w.fmt
유니코드 문자 데이터 사용 방법은 유니코드 문자 형식을 사용하여 데이터 가져오기 및 내보내기를 참조하십시오.
XML 서식 파일 만들기
bcp 명령을 사용하여 서식 파일을 만들려면 데이터 파일 경로 대신 format 인수를 지정하고 nul을 사용합니다. 다음과 같이 format 옵션에는 항상 -f 옵션이 필요하며 XML 서식 파일을 만드는 경우 -x 옵션도 지정해야 합니다.
bcptable_or_viewformat nul-fformat_file_name-x
[!참고]
XML 서식 파일을 구분하기 위해 파일 이름 확장명으로 .xml을 사용하는 것이 좋습니다(예: MyTable.xml).
XML 서식 파일의 구조 및 필드에 대한 자세한 내용은 XML 서식 파일 이해를 참조하십시오. 구문에 대한 정보는 XML 서식 파일의 스키마 구문을 참조하십시오. 예를 보려면 예제 XML 서식 파일을 참조하십시오.
예
이 섹션에는 bcp 명령을 사용하여 XML 서식 파일을 만드는 방법을 보여 주는 다음 예가 포함되어 있습니다.
1. 문자 데이터용 XML 서식 파일 만들기
2. 네이티브 데이터용 XML 서식 파일 만들기
다음 예에서는 AdventureWorks 예제 데이터베이스의 HumanResources.Department 테이블을 사용합니다. HumanResources.Department 테이블에는 DepartmentID, Name, GroupName 및 ModifiedDate의 4개 열이 있습니다. 이 테이블의 정의에 대해서는 Department 테이블(AdventureWorks)을 참조하십시오.
[!참고]
Adventure Works Cycles는 데이터베이스 개념 및 시나리오를 설명하는 데 사용되는 가상 제조 회사입니다.
1. 문자 데이터용 XML 서식 파일 만들기
다음 예에서는 AdventureWorksHumanResources.Department 테이블에 대한 Department.xml XML 서식 파일을 만듭니다. 서식 파일은 문자 데이터 형식 및 기본이 아닌 필드 종결자(,)를 사용합니다. 생성된 서식 파일의 내용은 명령 뒤에 표시됩니다.
bcp 명령에는 다음 한정자가 포함됩니다.
한정자 |
설명 |
---|---|
formatnul-fformat_file-x |
XML 서식 파일을 지정합니다. |
-c |
문자 데이터를 지정합니다. |
-t, |
쉼표(,)를 필드 종결자로 지정합니다.
참고
데이터 파일이 기본 필드 종결자(\t)를 사용하면 -t 스위치는 불필요합니다.
|
-T |
bcp 유틸리티가 통합 보안을 사용하는 트러스트된 연결을 통해 SQL Server로 연결되도록 지정합니다. -T가 지정되어 있지 않을 경우 성공적으로 로그인하려면 -U와 -P를 지정해야 합니다. |
Windows 명령 프롬프트에 다음 bcp 명령을 입력합니다.
bcp AdventureWorks.HumanResources.Department format nul -c -x -f Department-c..xml –t, -T
생성된 Department-c.xml 서식 파일에는 다음 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="7"/>
<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="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="24"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
</ROW>
</BCPFORMAT>
이 서식 파일의 구문에 대한 자세한 내용은 XML 서식 파일의 스키마 구문을 참조하십시오. 문자 데이터에 대한 자세한 내용은 데이터를 가져오거나 내보낼 때 문자 형식 사용을 참조하십시오.
2. 네이티브 데이터용 XML 서식 파일 만들기
다음 예에서는 AdventureWorksHumanResources.Department 테이블에 대한 Department-n.xml XML 서식 파일을 만듭니다. 서식 파일은 네이티브 데이터 형식을 사용합니다. 생성된 서식 파일의 내용은 명령 뒤에 표시됩니다.
bcp 명령에는 다음 한정자가 포함됩니다.
한정자 |
설명 |
---|---|
formatnul-fformat_file-x |
XML 서식 파일을 지정합니다. |
-n |
네이티브 데이터 형식을 지정합니다. |
-T |
bcp 유틸리티가 통합 보안을 사용하는 트러스트된 연결을 통해 SQL Server로 연결되도록 지정합니다. -T가 지정되어 있지 않을 경우 성공적으로 로그인하려면 -U와 -P를 지정해야 합니다. |
Windows 명령 프롬프트에 다음 bcp 명령을 입력합니다.
bcp AdventureWorks.HumanResources.Department format nul -x -f Department-n..xml -n -T
생성된 Department-n.xml 서식 파일에는 다음 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="NativeFixed" LENGTH="2"/>
<FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="NativeFixed" LENGTH="8"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
</ROW>
</BCPFORMAT>
이 서식 파일의 구문에 대한 자세한 내용은 XML 서식 파일의 스키마 구문을 참조하십시오. 네이티브 데이터 사용 방법은 네이티브 형식을 사용하여 데이터 가져오기 및 내보내기를 참조하십시오.
테이블 열에 데이터 필드 매핑
bcp에서 만든 서식 파일은 모든 테이블 열에 대한 설명을 순서대로 제공합니다. 서식 파일을 수정하여 테이블 행을 다시 정렬하거나 생략할 수 있습니다. 이렇게 하면 테이블 열에 직접 매핑하지 않는 필드가 있는 데이터 파일에 대해 서식 파일을 사용자 지정할 수 있습니다. 자세한 내용은 다음 항목을 참조하십시오.