Using a Format File to Skip a Data Field

Plik danych może zawierać więcej pól niż liczba kolumn w tabela.W tym temacie opisano modyfikowanie-XML i pliki w formacie XML do pliku danych z pól przez mapowanie kolumny tabela do odpowiednich pól danych i ignorowanie dodatkowe pola.

Uwaga

-XML lub plik formatu XML może być używane do import zbiorczy pliku danych do tabela za pomocą BCP polecenie zbiorczej instrukcja INSERT lub INSERT... SELECT * FROM OPENROWSET(BULK...) instrukcja.Aby uzyskać więcej informacji zobaczUsing a Format File to Bulk Import Data.

Plik i tabela danych przykładowych

Przykłady zmodyfikowanych plików w tym temacie są oparte na następujący plik tabela i dane.

Tabela próbki

W przykładach wymagają, aby tabela o nazwie myTestSkipField można utworzyć w AdventureWorks Przykładowa baza danych w obszarze dbo schemat. To create this table, in Microsoft SQL Server Management Studio Query Editor, run the following code:

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

Przykładowy plik danych

Plik danych myTestSkipField-c.dat, zawiera następujące rekordy:

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

Do importowania danych z luzem myTestSkipField-c.dat do myTestSkipField Tabela, plik formatu należy wykonać następujące czynności:

  • Mapowanie pierwszego pole danych do pierwszej kolumna PersonID.

  • Pomiń drugiego pole danych.

  • Mapowanie trzecie pole danych do drugiej kolumna FirstName.

  • Mapowanie czwartego pole danych do trzeciej kolumna LastName.

Plik formatu XML inny niż dla pola więcej danych

Następujący plik formatu myTestSkipField.fmt, mapuje pola w myTestSkipField-c.dat do kolumny myTestSkipField Tabela. plik formatu używany format danych znaków.Pomijanie mapowanie kolumn konieczna jest zmiana jego wartość kolejności kolumn na 0, jak pokazano na ExtraField kolumna w plik formatu.

The myTestSkipField.fmt plik formatu contains the following information:

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

Uwaga

Aby uzyskać informacje na temat składni XML inny niż pliki w formacie zobacz Understanding Non-XML Format Files.

Przykłady

W poniższym przykładzie użyto INSERT ... SELECT * FROM OPENROWSET(BULK...) za pomocą myTestSkipField.fmt plik formatu. Importuje zbiorczej przykład myTestSkipField-c.dat w pliku danych myTestSkipField Tabela. Aby utworzyć plik tabela i dane przykładowe, zobacz "Przykładowy plik i tabela danych," we wcześniejszej części tego tematu.

W SQL Server Management Studio Edytor kwerend, uruchom następujący kod:

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

Plik formatu XML dla pola więcej danych

plik formatu, w tym przykładzie opiera się na inny plik formatu, myTestSkipField.xml, która używa znaku format danych w całym i którego pola odpowiadają dokładnie w numer i kolejność kolumn w myTestSkipField Tabela. Aby wyświetlić zawartość tego pliku formatu, zobacz Creating a Format File.

Następujący plik formatu myTestSkipField.xml, mapuje pola w myTestSkipField-c.dat do kolumny myTestSkipField Tabela. plik formatu używany format danych znaków.

The myTestSkipField.xml plik formatu contains the following information:

<?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>

Przykłady

W poniższym przykładzie użyto INSERT ... SELECT * FROM OPENROWSET(BULK...) za pomocą myTestSkipField.Xml plik formatu. Importuje zbiorczej przykład myTestSkipField-c.dat w pliku danych myTestSkipField Tabela. Aby utworzyć plik tabela i dane przykładowe, zobacz "Przykładowy plik i tabela danych," we wcześniejszej części tego tematu.

W SQL Server Management Studio Edytor kwerend, uruchom następujący kod:

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

Uwaga

Aby uzyskać informacje na temat składni schematu XML i dodatkowe przykłady plików w formacie XML zobacz Understanding XML Format Files.