Using a Format File to Map Table Columns to Data-File Fields

Plik danych może zawierać pola w innej kolejności niż odpowiadające im kolumny w tabela.W tym temacie przedstawiono-XML i pliki w formacie XML, które zostały zmodyfikowane tak, aby pomieścić plik danych, których pola są ułożone w innej kolejności niż kolumn tabela.Zmodyfikowany plik formatu mapuje pola danych do kolumny tabela.

Uwaga

plik formatu XML inny niż programu lub pliku w formacie 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.

Tabela próbki i pliku danych

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

Tabela próbki

W przykładach w tym temacie wymagają, aby tabela o nazwie myTestOrder można utworzyć w AdventureWorks Przykładowa baza danych w obszarze dbo schemat. Aby utworzyć w tej tabela SQL Server Management Studio Edytor kwerendy wykonaj następujący kod:

USE AdventureWorks;
GO
CREATE TABLE myTestOrder 
   (
   Col1 smallint,
   Col2 nvarchar(50) ,
   Col3 nvarchar(50) , 
   Col4 nvarchar(50) 
   );
GO

Plik danych

Plik danych myTestOrder-c.txt, zawiera następujące rekordy:

DataField3,DataField2,1,DataField4
DataField3,DataField2,1,DataField4
DataField3,DataField2,1,DataField4

Aby import zbiorczy danych z myTestSkipCol2-c.dat do myTestSkipCol tabela, plik formatu musi być mapowane do pierwszego pola danych Col3, danych drugie pole do Col2, trzeci danych pól do Col1, a czwarty danych pól do Col4.

Przy użyciu innych niż XML plik formatu

Aby zmienić kolejność mapowanie kolumn, zmieniając wartość zamówienia dla kolumna wskazać położenie odpowiednich pole danych.

Następujący przykładowy plik formatu XML inny niż przedstawia plik w formacie myTestOrder.fmt, który mapuje pola w myTestOrder-c.txt do kolumny myTestOrder Tabela. Aby uzyskać informacje na temat tworzenia pliku danych i tabela zobacz "Przykładowe tabela i plik danych," we wcześniejszej części tego tematu.plik formatu używany format danych znaków.

Plik formatu zawiera następujące informacje:

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

Uwaga

Aby uzyskać więcej informacji dotyczących układu pliki w formacie XML inny niż zobacz Understanding Non-XML Format Files.

Przykład

W poniższym przykładzie użyto BULK INSERT Instrukcja do masowych importowania danych z myTestOrder-c.txt w pliku danych myTestOrder przykładową tabela za pomocą myTestOrder.fmt plik formatu XML inny niż.

W SQL Server Management Studio Uruchomić Edytor kwerendy:

USE AdventureWorks;
GO
BULK INSERT myTestOrder
FROM 'C:\myTestOrder-c.txt' 
WITH (formatfile='C:\myTestOrder.fmt');
GO

Za pomocą XML plik formatu

Następujący przykładowy plik formatu XML inny niż przedstawia plik w formacie myTestOrder.xml, który mapuje pola w myTestOrder-c.txt do kolumny myTestOrderTabela informacji na temat tworzenia pliku danych i tabeli, zobacz sekcję „ przykładową tabelę i danych pliku, „ we wcześniejszej części tego tematu.

The myTestOrder.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="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>

Uwaga

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

Przykład

W poniższym przykładzie użyto OPENROWSET dostawca zbiorczych zestawów zestaw wierszy do importowania danych z myTestOrder-c.txt w pliku danych myTestOrder przykładową tabela za pomocą myTestOrder.xml plik formatu XML. The INSERT… SELECT instrukcja specifies the kolumna list in the select list.

W SQL Server Management Studio Edytor kwerendy wykonaj następujący kod:

USE AdventureWorks;
GO
INSERT INTO myTestOrder 
  SELECT Col1, Col2, Col3, Col4
      FROM  OPENROWSET(BULK  'C:\myTestOrder-c.txt',
      FORMATFILE='C:\myTestOrder.Xml'  
       ) AS t1;
GO