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