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