Aracılığıyla paylaş


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

Veri dosyası tabloda karşılık gelen sütun farklı bir sırayla düzenlenmiş alanlar içerebilir. Bu konu olmayan xml ve xml biçimi dosyaları alanları tablo sütunlarından farklı bir sırayla düzenlenmiş bir veri dosyasına yerleştirmek için değiştirilen sunar. Değiştirilmiş dosyayı, onların karşılık gelen tablo sütunları için veri alanlarını eşleştirir.

[!NOT]

Olmayan xml biçimi dosyası veya xml biçimi dosyası toplu olarak kullanılabilir bir veri dosyası kullanarak tabloya almak bir bcpkomutu, bulk INSERT deyimi ya da Ekle... SEÇİN * openrowset(bulk...) from deyimi. Daha fazla bilgi için, bkz. (SQL Server) Veri Al toplu için bir biçim dosyası kullanma.

Örnek tablo ve veri dosyası

Değiştirilmiş biçimi dosyaları bu konudaki örneklerde aşağıdaki tablo ve veri dosyası üzerinde temel alır.

Örnek tablo

Tablo ismi bu konudaki örneklerde gereksinim myTestOrdermahluk AdventureWorks2012örnek veritabanı altında dboşema. Bu tablo oluşturmak için SQL Server Management Studiosorgu Düzenleyicisi, aşağıdaki kodu yürütün:

USE AdventureWorks2012;
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 veri alma için myTestSkipCol2-c.datiçine myTestSkipColtablosu, ilk veri alanı biçimi dosya eşlemeniz gerekir Col3, ikinci veri alanı için Col2, üçüncü veri alanını Col1, ve dördüncü veri alanında Col4.

Olmayan xml biçimi dosyası kullanma

İlgili veri alanı konumunu belirtmek için sütun 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ını, sunar myTestOrder.fmt, alanları Pool'a myTestOrder-c.txtsütunlar için myTestOrdertablosu. Tablo ve veri dosyası oluşturma hakkında daha fazla bilgi için bkz: "Örnek tablo ve veri dosyası" Bu konunun önceki kısımlarında. Biçim dosyasını karakter veri biçimi kullanır.

Biçimi 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ı (SQL Server).

Örnek

Aşağıdaki örnek bir BULK INSERTdeyimi toplu alma verileri myTestOrder-c.txtveri dosyası içine myTestOrderkullanarak örnek tablo myTestOrder.fmt-xml biçimi dosyası.

De SQL Server Management Studiosorgu Düzenleyicisi, yürütün:

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

xml biçimi dosyası kullanma

Aşağıdaki örnek olmayan xml biçimi dosyası biçim dosyasını, sunar myTestOrder.xml, alanları Pool'a myTestOrder-c.txtsütunlar için myTestOrdertablo tablo ve veri dosyası oluşturmak için bkz: "örnek tablo ve veri dosyası" hakkında bilgi Bu konunun önceki kısımlarında.

myTestOrder.xmlBiçimi aşağıdaki bilgileri içerir:

<?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 örnek xml biçimi dosyaları sözdizimi hakkında bilgi için xml biçimi dosyaları (SQL Server).

Örnek

Aşağıdaki örnek OPENROWSETverileri almak için toplu satır kümesi sağlayıcı myTestOrder-c.txtveri dosyası içine myTestOrderkullanarak örnek tablo myTestOrder.xmlxml biçimi dosyası. INSERT… SELECTDeyimi seçme listesinde sütun listesi belirtir.

De SQL Server Management Studiosorgu Düzenleyicisi, aşağıdaki kodu yürütün:

USE AdventureWorks2012;
GO
INSERT INTO myTestOrder 
  SELECT Col1, Col2, Col3, Col4
      FROM  OPENROWSET(BULK  'C:\myTestOrder-c.txt',
      FORMATFILE='C:\myTestOrder.Xml'  
       ) AS t1;
GO

Ayrıca bkz.

Kavramlar

(SQL Server) tablo sütun Atla için bir biçim dosyası kullanma

Atla veri alanı (SQL Server) için bir biçim dosyası kullanma