Aracılığıyla paylaş


Tablo sütunlar için veri dosyası alanlarını eşlemek için bir biçim dosyası'nı kullanma

Bir veri dosyası alanları ilgili sütunlar'dan farklı bir sırada içerebilir tablo.Bu konu, olmayan XML hem de bir veri dosyası alanları, tablo sütunlarından farklı sırada düzenlenir uyması için değişiklik XML biçimi dosyalarını sunar.Değiştirilmiş biçim dosyası veri alanları, karşılık gelen tablo sütunları için eşleştirir.

Not

Bir olmayan XML biçimi dosyası veya XML biçimli bir dosya için kullanılan olabilir toplu alma kullanarak tabloya veri dosyası bir Kullanımıbcp komutu, INSERT deyim TOPLU veya INSERT... SELECT * FROM OPENROWSET(BULK...) deyim.Daha fazla bilgi için bkz:Veri Al toplu işlemi için bir biçim dosyası'nı kullanma.

Örnek tablo ve veri dosyası

Bu konuda değiştirilmiş biçimi dosyaları örnekleri aşağıdaki tabloda ve veri dosyasını temel alır.

Örnek tablo

Bu konudaki örneklerde, bir tablo adı gerektirir. myTestOrder oluşturulmasını AdventureWorks Örnek Veritabanı'nın altında dbo Schema. Bu bir tablo oluşturmak için SQL Server Management Studio Sorgu Düzenleyicisi'nde, aşağıdaki kodu çalıştırın:

USE AdventureWorks;
GO
CREATE TABLE myTestOrder 
   (
   Col1 smallint,
   Col2 nvarchar(50) ,
   Col3 nvarchar(50) , 
   Col4 nvarchar(50) 
   );
GO

Veri dosyası

Veri dosyası myTestOrder-c.txt, aşağıdaki kayıtları içerir:

DataField3,DataField2,1,DataField4
DataField3,DataField2,1,DataField4
DataField3,DataField2,1,DataField4

Için toplu alma verileri myTestSkipCol2-c.dat içine myTestSkipCol Tablodaki ilk veri alan için biçim dosyası eşlenmelidir. Col3, için ikinci veri alan Col2, için üçüncü veri alan Col1, ve için dördüncü veri alan Col4.

Non-XML kullanarak biçim dosyası

Sütun, ilgili veri alan konumunu belirtmek için Sipariş değerini değiştirerek, bir sütun eşleme sırasını değiştirebilirsiniz.

Aşağıdaki örnek olmayan XML biçim dosyasını bir biçim dosyası sunar. myTestOrder.fmt, alanları eşleştiren myTestOrder-c.txt sütunları için myTestOrder TABLO. Veri dosyası ve tablo oluşturma hakkında daha fazla bilgi için bu konunun önceki kısımlarında "Örnek tablo ve veri dosyası," "konusuna bakın.biçim dosyası karakter veri biçimini kullanır.

biçim dosyası aşağıdaki bilgileri içerir:

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

Not

Olmayan XML biçimi dosyaları düzeni hakkında daha fazla bilgi için bkz: Disk XML biçimi dosyaları anlama.

Örnek

Aşağıdaki örnek bir BULK INSERT deyim toplu olarak alma verileri myTestOrder-c.txt uygulamasına veri dosyası myTestOrder örnek tablo, kullanarak myTestOrder.fmt olmayan XML biçim dosyası.

Içinde SQL Server Management Studio Sorgu Düzenleyicisi'nde, yürütün:

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

XML kullanarak biçim dosyası

Aşağıdaki örnek olmayan XML biçim dosyasını bir biçim dosyası sunar. myTestOrder.xml, alanları eşleştiren myTestOrder-c.txt sütunları için myTestOrderveri dosyası ve tablo oluşturmak bu konunun önceki kısımlarında "Örnek tablo ve veri dosyası," bakın hakkında bilgi tablosudur.

The myTestOrder.xml biçim dosyası 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>

Not

XML şeması ve ek örnekler XML biçimi dosyalarının sözdizimi hakkında bilgi için XML biçimi dosyaları anlama.

Örnek

Aşağıdaki örnek OPENROWSET verileri almak için toplu satır kümesi sağlayıcı myTestOrder-c.txt uygulamasına veri dosyası myTestOrder örnek tablo, kullanarak myTestOrder.xml XML dosyası biçimi. The INSERT… SELECT deyim specifies the sütun list in the select list.

Içinde SQL Server Management Studio Sorgu Düzenleyicisi'nde, aşağıdaki kodu çalıştırın:

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