Udostępnij za pośrednictwem


Pomiń pole danych przy użyciu formatu pliku

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

Ostrzeżenie

XML programu albo XML plik formatu może służyć do masowych importowanie 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ładowe dane plików i tabeli

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

Przykładowa tabela

Przykłady wymagają, że tabela o nazwie myTestSkipField utworzone w AdventureWorks przykładowej bazy danych pod dbo schematu.To create this table, in Microsoft SQL Server Management Studio Query Editor, run the following code:

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

Aby import zbiorczy danych z myTestSkipField-c.dat do myTestSkipField tabela, plik formatu, wykonaj 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ż więcej pól 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 wymaga zmiany jego wartość kolumna w kolejności 0, jak pokazano na ExtraField kolumna w plik formatu.

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

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

Ostrzeżenie

Informacje o składni XML inny niż format plików Zobacz Opis plików w formacie XML programu.

Przykłady

W poniższym przykładzie użyto INSERT ... SELECT * FROM OPENROWSET(BULK...) za pomocą myTestSkipField.fmt plik formatu.Importuje luzem przykład myTestSkipField-c.dat dane pliku do myTestSkipField tabela.Aby utworzyć plik tabela i dane przykładowe, zobacz "Przykładowy plik i tabela danych" wcześniej w tym temacie.

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

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

Plik XML w formacie więcej pól danych

Plik formatu przedstawionych w tym przykładzie jest oparty na inny format pliku, myTestSkipField.xml, który używa znaków format danych w całym i którego pola odpowiadają dokładnie w numer i kolejność kolumn w myTestSkipField tabela.Aby wyświetlić zawartość, plik formatu, zobacz Tworzenie pliku formatu.

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.

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="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 luzem przykład myTestSkipField-c.dat dane pliku do myTestSkipField tabela.Aby utworzyć plik tabela i dane przykładowe, zobacz "Przykładowy plik i tabela danych" wcześniej w tym temacie.

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

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

Ostrzeżenie

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