다음을 통해 공유


서식 파일을 사용하여 데이터 필드 건너뛰기(SQL Server)

데이터 파일에는 테이블의 열 수보다 많은 필드가 포함될 수 있습니다. 이 항목에서는 테이블 열을 해당 데이터 필드에 매핑하고 추가 필드를 무시하여 더 많은 필드가 있는 데이터 파일을 수용하도록 비 XML 및 XML 서식 파일을 모두 수정하는 방법을 설명합니다.

비고

비 XML 또는 XML 형식 파일을 사용하여 bcp 명령, BULK INSERT 문, 또는 INSERT ... SELECT * FROM OPENROWSET(BULK...) 문을 통하여 데이터 파일을 테이블로 대량으로 가져올 수 있습니다. 자세한 내용은 서식 파일을 사용하여 데이터 대량 가져오기(SQL Server)를 참조하세요.

샘플 데이터 파일 및 테이블

이 항목에서 수정된 형식 파일의 예제는 다음 테이블 및 데이터 파일을 기반으로 합니다.

샘플 테이블

이 예제에서는 AdventureWorks2012 샘플 데이터베이스에서 dbo 스키마 아래의 myTestSkipField 테이블을 만들어야 합니다. 이 테이블을 만들려면 Microsoft SQL Server Management Studio 쿼리 편집기에서 다음 코드를 실행합니다.

USE AdventureWorks2012;  
GO  
CREATE TABLE myTestSkipField   
   (  
   PersonID smallint,  
   FirstName nvarchar(50) ,  
   LastName nvarchar(50)   
   );  
GO  

샘플 데이터 파일

데이터 파일은 myTestSkipField-c.dat다음 레코드를 포함합니다.

1,Skipme,DataField3,DataField4  
1,Skipme,DataField3,DataField4  
1,Skipme,DataField3,DataField4  

대량으로 데이터를 myTestSkipField-c.dat에서 myTestSkipField 테이블로 가져오려면 서식 파일이 다음 작업을 수행해야 합니다.

  • 첫 번째 데이터 필드를 첫 번째 열인 PersonID에 매핑합니다.

  • 두 번째 데이터 필드를 건너뛰세요.

  • 세 번째 데이터 필드를 두 번째 열인 FirstName에 매핑합니다.

  • 네 번째 데이터 필드를 세 번째 열에 매핑합니다 LastName.

더 많은 데이터 필드에 대한 비 XML 서식 파일

다음 서식 파일은 myTestSkipField.fmt필드를 myTestSkipField-c.dat 테이블의 myTestSkipField 열에 매핑합니다. 형식 파일은 문자 데이터 형식을 사용합니다. 열 매핑을 건너뛰려면, 서식 파일의 ExtraField 열에 대해 열 순서의 값을 0으로 설정해야 합니다.

myTestSkipField.fmt 서식 파일에는 다음 정보가 포함됩니다.

9.0  
4  
1       SQLCHAR       0       7       ","      1     PersonID               ""  
2       SQLCHAR       0       100       ","    0     ExtraField             SQL_Latin1_General_CP1_CI_AS  
3       SQLCHAR       0       100     ","      2     FirstName              SQL_Latin1_General_CP1_CI_AS  
4       SQLCHAR       0       100     "\r\n"   3     LastName               SQL_Latin1_General_CP1_CI_AS  
  

비고

비 XML 서식 파일의 구문에 대한 자세한 내용은 비 XML 서식 파일(SQL Server)을 참조하세요.

예시

다음 예제에서는 INSERT ... SELECT * FROM OPENROWSET(BULK...)을(를) myTestSkipField.fmt 서식 파일을 사용하여 사용합니다. 이 예제에서는 myTestSkipField-c.dat 데이터 파일을 myTestSkipField 테이블로 대량으로 가져옵니다. 샘플 테이블 및 데이터 파일을 만들려면 이 항목의 앞부분에 있는 "샘플 데이터 파일 및 테이블"을 참조하세요.

SQL Server Management Studio 쿼리 편집기에서 다음 코드를 실행합니다.

USE AdventureWorks2012;  
GO  
INSERT INTO myTestSkipField   
   SELECT *  
      FROM  OPENROWSET(BULK  'C:\myTestSkipField-c.dat',  
      FORMATFILE='C:\myTestSkipField.fmt'    
       ) AS t1;  
GO   

더 많은 데이터 필드에 대한 XML 서식 파일

이 예제에 제시된 서식 파일은 전체적으로 문자 데이터 형식을 사용하고 있으며, 필드의 숫자와 순서가 myTestSkipField 테이블의 열과 정확히 일치하는 다른 서식 파일 myTestSkipField.xml를 기반으로 합니다. 해당 서식 파일의 내용을 보려면 서식 파일 만들기(SQL Server)를 참조하세요.

다음 서식 파일은 myTestSkipField.xml필드를 myTestSkipField-c.dat 테이블의 myTestSkipField 열에 매핑합니다. 형식 파일은 문자 데이터 형식을 사용합니다.

myTestSkipField.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="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
 </RECORD>  
 <ROW>  
  <COLUMN SOURCE="1" NAME="PersonID" xsi:type="SQLSMALLINT"/>  
  <COLUMN SOURCE="3" NAME="FirstName" xsi:type="SQLNVARCHAR"/>  
  <COLUMN SOURCE="4" NAME="LastName" xsi:type="SQLNVARCHAR"/>  
 </ROW>  
</BCPFORMAT>  

예시

다음 예제에서는 myTestSkipField.Xml 형식 파일을 사용하여 INSERT ... SELECT * FROM OPENROWSET(BULK...)를 사용합니다. 이 예제에서는 myTestSkipField-c.dat 데이터 파일을 myTestSkipField 테이블로 대량으로 가져옵니다. 샘플 테이블 및 데이터 파일을 만들려면 이 항목의 앞부분에 있는 "샘플 데이터 파일 및 테이블"을 참조하세요.

SQL Server Management Studio 쿼리 편집기에서 다음 코드를 실행합니다.

USE AdventureWorks2012;  
GO  
INSERT INTO myTestSkipField   
  SELECT *  
      FROM  OPENROWSET(BULK  'C:\myTestSkipField-c.dat',  
      FORMATFILE='C:\myTestSkipField.xml'    
       ) AS t1;  
GO  
  

비고

XML 스키마 구문 및 XML 서식 파일의 추가 샘플에 대한 자세한 내용은 XML 서식 파일(SQL Server)을 참조하세요.

또한 참조하십시오

bcp 유틸리티 도구
BULK INSERT(Transact-SQL)
OPENROWSET(Transact-SQL)
서식 파일을 사용하여 테이블 열 건너뛰기(SQL Server)
서식 파일을 사용하여 테이블 열을 Data-File 필드에 매핑하기 (SQL Server)