Aracılığıyla paylaş


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

Karşılık gelen sütun sırası ile farklı sırada düzenlenmiş alanları içeren bir veri dosyası tablo.Bu konuda hem xml hem de alanları Tablo sütunlarından farklı bir sırayla düzenlenmiş bir veri dosyası kapsayacak şekilde değiştirilmiş xml biçimi dosyaları sunar.Değiştirilmiş biçim dosyası veri alanları karşılık gelen tablo sütun eşleştirir.

Not

Olmayan xml biçimi dosyası ya da bir xml biçimi dosyası toplu olarak kullanılabilir bir veri dosyasına almak tablo kullanarak bir bcp deyim, bulk INSERT komutunu veya Ekle...SEÇİN * ndan openrowset(bulk...) deyim.Daha fazla bilgi için bkz: Veri Al toplu için bir biçim dosyası kullanma.

Örnek tablo ve veri dosyası

Bu konudaki değiştirilmiş biçimi dosyaları örnekleri aşağıdaki tablo ve veri dosyası üzerinde temel alır.

Örnek tablo

Bu konudaki örneklerde bir tablo taşıyan bir iste myTestOrder oluşturulmasını AdventureWorks örnek veritabanı altında dbo şema.Bu tablo oluşturmak için SQL Server Management Studio Query Editor yürütmek aşağıdaki kodu:

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

Toplu alma verileri için myTestSkipCol2-c.dat içine myTestSkipCol tablo, için ilk veri alanı biçimi dosya eşleşmesi gereken Col3, ikinci veri alanı için Col2, üçüncü veri alanı için Col1, ve dördüncü verileri için alan Col4.

Olmayan xml biçimi dosyası kullanma

İlgili veri alan konumunu belirtmek sütun için sipariş değeri değiştirerek sütun eşleme sırasını değiştirebilirsiniz.

Aşağıdaki örnek olmayan xml biçimi dosyası biçim dosyası sunan 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 bkz: "Örnek tablo ve veri dosyası" Bu konunun önceki kısımlarında.Karakter veri biçimi biçim dosyası 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: Olmayan xml biçimi dosyaları anlama.

Örnek

Aşağıdaki örnek bir BULK INSERT deyim toplu olarak gelen verileri almak myTestOrder-c.txt veri dosyası içine myTestOrder kullanarak örnek tablo myTestOrder.fmt xml biçim dosyası.

De SQL Server Management Studio yürütmek Query Editor:

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

Bir xml biçimi dosyası kullanma

Aşağıdaki örnek olmayan xml biçimi dosyası biçim dosyası sunan myTestOrder.xml, alanları eşleştiren myTestOrder-c.txt sütunlar için myTestOrder tablosu "örnek tablo ve veri dosyası," bakın, tablo ve veri dosyası oluşturma hakkında bilgi için Bu konunun önceki kısımlarında.

The myTestOrder.xml format file 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ı sözdizimi hakkında bilgi için bkz: xml biçimi dosyaları anlama.

Örnek

Aşağıdaki örnek OPENROWSET bulk satır kümesi sağlayıcı verileri almak için myTestOrder-c.txt veri dosyası içine myTestOrder kullanarak örnek tablo myTestOrder.xml xml biçim dosyası.The INSERT… SELECT statement specifies the column list in the select list.

De SQL Server Management Studio Query Editor yürütmek aşağıdaki kodu:

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