Udostępnij za pośrednictwem


Przy użyciu formatu pliku do mapowania pól z pliku danych kolumny tabeli

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

Ostrzeżenie

Plik formatu XML programu lub pliku w formacie XML można używać do import zbiorczy pliku danych do tabela za pomocą bcp polecenia WSTAW luzem instrukcja lub WSTAW...WYBIERZ * Z OPENROWSET(BULK...) instrukcja.Aby uzyskać więcej informacji, zobacz Luzem Importuj dane przy użyciu formatu pliku.

Przykładową tabelę i pliku danych

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

Przykładowa tabela

Przykłady w tym temacie wymagają, że tabela o nazwie myTestOrder utworzone w AdventureWorks przykładowej bazy danych pod dbo schematu.Aby utworzyć w tej tabela SQL Server Management Studio Edytor kwerend wykonać następujący kod:

USE AdventureWorks2008R2;
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

Do import zbiorczy danych z myTestSkipCol2-c.dat do myTestSkipCol tabela, plik formatu należy zamapować pierwsze pole danych, aby Col3, drugie pole danych, aby Col2, trzecie pole danych, aby Col1, i danych w czwartym polu na Col4.

Przy użyciu pliku Format XML programu

Kolejność mapowanie kolumn można zmienić, zmieniając wartość zamówienia dla kolumna wskazać położenie odpowiedniego pole danych.

Następujący przykładowy plik formatu XML inny niż przedstawia format pliku, myTestOrder.fmt, który mapuje pola w myTestOrder-c.txt do kolumny myTestOrder tabela.Aby uzyskać informacje dotyczące tworzenia pliku danych i tabela, zobacz "Próbki tabela i pliku danych" wcześniej w tym temacie.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

Ostrzeżenie

Aby uzyskać więcej informacji dotyczących układu pliki w formacie XML programu, zobacz Opis plików w formacie XML programu.

Przykład

W poniższym przykładzie użyto BULK INSERT instrukcja do luzem importowanie danych z myTestOrder-c.txt dane pliku do myTestOrder przykładową tabela przy użyciu myTestOrder.fmt XML inny niż plik formatu.

W SQL Server Management Studio Edytor kwerend wykonać:

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

Przy użyciu pliku w formacie XML

Następujący przykładowy plik formatu XML inny niż przedstawia format pliku, myTestOrder.xml, który mapuje pola w myTestOrder-c.txt do kolumny myTestOrder tabela, aby uzyskać informacje dotyczące tworzenia pliku danych i tabela, zobacz "próbki tabela i pliku danych" wcześniej w tym temacie.

myTestSkipField.fmt plik formatu zawiera następujące informacje:

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

Ostrzeżenie

Informacje o składni schematu XML i dodatkowe próbki pliki w formacie XML, zobacz Opis plików w formacie XML.

Przykład

W poniższym przykładzie użyto OPENROWSET dostawca zbiorczych zestawów zestaw wierszy do importowania danych z myTestOrder-c.txt dane pliku do myTestOrder przykładową tabela przy użyciu myTestOrder.xml plik formatu XML.INSERT… SELECT Określa instrukcja kolumna listy na liście select.

W SQL Server Management Studio Edytor kwerend wykonać następujący kod:

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