Freigeben über


Verwenden einer Formatdatei zum Überspringen eines Datenfelds (SQL Server)

Eine Datendatei kann mehr Felder als die Anzahl der Spalten in der Tabelle enthalten. In diesem Thema wird das Ändern von Nicht-XML- und XML-Formatdateien beschrieben, um eine Datendatei mit weiteren Feldern aufzunehmen, indem die Tabellenspalten den entsprechenden Datenfeldern zugeordnet und die zusätzlichen Felder ignoriert werden.

Hinweis

Eine Nicht-XML- oder XML-Formatdatei kann zum Massenimport einer Datendatei in die Tabelle mithilfe eines bcp-Befehls , einer BULK INSERT-Anweisung oder einer INSERT -Anweisung verwendet werden... SELECT * FROM OPENROWSET(BULK...)-Anweisung. Weitere Informationen finden Sie unter Verwenden einer Formatdatei zum Massenimport von Daten (SQL Server).For more information, see Use a Format File to Bulk Import Data (SQL Server).

Beispieldatendatei und -tabelle

Die Beispiele für geänderte Formatdateien in diesem Thema basieren auf der folgenden Tabelle und Datendatei.

Beispieltabelle

In den Beispielen muss eine Tabelle mit dem Namen myTestSkipField in der AdventureWorks2012-Beispieldatenbank unter dem dbo Schema erstellt werden. Führen Sie zum Erstellen dieser Tabelle im Abfrage-Editor von Microsoft SQL Server Management Studio den folgenden Code aus:

USE AdventureWorks2012;  
GO  
CREATE TABLE myTestSkipField   
   (  
   PersonID smallint,  
   FirstName nvarchar(50) ,  
   LastName nvarchar(50)   
   );  
GO  

Beispieldatendatei

Die Datendatei enthält myTestSkipField-c.datdie folgenden Datensätze:

1,Skipme,DataField3,DataField4  
1,Skipme,DataField3,DataField4  
1,Skipme,DataField3,DataField4  

Zum Massenimport von Daten aus myTestSkipField-c.dat der myTestSkipField Tabelle muss die Formatdatei folgendes ausführen:

  • Ordnen Sie das erste Datenfeld der ersten Spalte zu, PersonID.

  • Überspringen Sie das zweite Datenfeld.

  • Ordnen Sie das dritte Datenfeld der zweiten Spalte zu. FirstName

  • Ordnen Sie das vierte Datenfeld der dritten Spalte zu. LastName

Nicht-XML-Formatdatei für weitere Datenfelder

Die folgende Formatdatei myTestSkipField.fmtordnet die Felder myTestSkipField-c.dat den Spalten der myTestSkipField Tabelle zu. Die Formatdatei verwendet das Zeichendatenformat. Beim Überspringen einer Spaltenzuordnung muss der Spaltenreihenfolgewert auf 0 geändert werden, wie für die ExtraField Spalte in der Formatdatei dargestellt.

Die myTestSkipField.fmt Formatdatei enthält die folgenden Informationen:

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  
  

Hinweis

Informationen zur Syntax von Nicht-XML-Formatdateien finden Sie unter Non-XML Format Files (SQL Server).For information about the syntax of non-XML format files, see Non-XML Format Files (SQL Server)

Beispiele

Im folgenden Beispiel wird die myTestSkipField.fmt Formatdatei verwendetINSERT ... SELECT * FROM OPENROWSET(BULK...). Das Beispiel importiert die myTestSkipField-c.dat Datendatei in die myTestSkipField Tabelle. Informationen zum Erstellen der Beispieltabelle und -datendatei finden Sie weiter oben in diesem Thema unter "Beispieldatendatei und -tabelle".

Führen Sie im SQL Server Management Studio-Abfrage-Editor den folgenden Code aus:

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

XML-Formatdatei für weitere Datenfelder

Die in diesem Beispiel dargestellte Formatdatei basiert auf einer anderen Formatdatei, myTestSkipField.xmldie das Zeichendatenformat überall verwendet und deren Felder exakt in Zahl und Reihenfolge zu den Spalten in der myTestSkipField Tabelle entsprechen. Informationen zum Anzeigen des Inhalts dieser Formatdatei finden Sie unter Erstellen einer Formatdatei (SQL Server).To view the contents of that format file, see Create a Format File (SQL Server).

Die folgende Formatdatei myTestSkipField.xmlordnet die Felder myTestSkipField-c.dat den Spalten der myTestSkipField Tabelle zu. Die Formatdatei verwendet das Zeichendatenformat.

Die myTestSkipField.xml Formatdatei enthält die folgenden Informationen:

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

Beispiele

Im folgenden Beispiel wird die myTestSkipField.Xml Formatdatei verwendetINSERT ... SELECT * FROM OPENROWSET(BULK...). Das Beispiel importiert die myTestSkipField-c.dat Datendatei in die myTestSkipField Tabelle. Informationen zum Erstellen der Beispieltabelle und -datendatei finden Sie weiter oben in diesem Thema unter "Beispieldatendatei und -tabelle".

Führen Sie im SQL Server Management Studio-Abfrage-Editor den folgenden Code aus:

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

Hinweis

Informationen zur Syntax des XML-Schemas und zusätzliche Beispiele für XML-Formatdateien finden Sie unter XML-Formatdateien (SQL Server).For information about the syntax of the XML Schema and additional samples of XML format files, see XML Format Files (SQL Server).

Siehe auch

BCP (Hilfsprogramm)
MASSENEINFÜGUNG (Transact-SQL)
OPENROWSET (Transact-SQL)
Überspringen einer Tabellenspalte mithilfe einer Formatdatei (SQL Server)
Verwenden einer Formatdatei zum Zuordnen von Tabellenspalten zu Datendateifeldern (SQL Server)