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.