Share via


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

Veri dosyası, tablodaki sütun sayısından daha fazla alanlar içerebilir. Olmayan xml ve xml biçimi dosyaları daha fazla alan içeren bir veri dosyası için karşılık gelen veri alanları tablo sütunları eşleme ve ek alanları yoksayılıyor için değiştirme açıklanmıştır.

[!NOT]

Toplu olarak kullanılabilir olmayan xml ya da xml biçimi dosyası veri dosyasını 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 veri dosyası ve tablo

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

Örnek tablo

Örnek bir tablo ismi gerektirir myTestSkipFieldmahluk AdventureWorks2012örnek veritabanı altında dboşema. Bu tablo oluşturmak için Microsoft  SQL Server Management Studiosorgu Düzenleyicisi aşağıdaki kodu çalıştırın:

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

Örnek veri dosyası

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

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

Toplu veri alma için myTestSkipField-c.datiçine myTestSkipFieldTablo biçimi dosyası aşağıdakileri yapmanız gerekir:

  • İlk sütuna, ilk veri alanı harita PersonID.

  • İkinci veri alanını atlayın.

  • Üçüncü veri alanını ikinci sütun, göster FirstName.

  • Dördüncü veri alanı için üçüncü sütun, göster LastName.

Diğer veri alanlarını için-xml biçimi dosyası

Aşağıdaki biçimi dosyası myTestSkipField.fmt, alanlar haritaları myTestSkipField-c.datsütunlar için myTestSkipFieldtablosu. Biçim dosyasını karakter veri biçimi kullanır. Bir sütun eşleme atlama gerektirir sütun sipariş değeri 0 olarak değiştirmek için gösterildiği gibi ExtraFieldBiçim dosyasını sütun.

myTestSkipField.fmtBiçimi aşağıdaki bilgileri içerir:

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

[!NOT]

Olmayan xml biçimi dosyaları sözdizimi hakkında daha fazla bilgi için bkz: Olmayan xml biçimi dosyaları (SQL Server).

Örnekler

Aşağıdaki örnek INSERT ... SELECT * FROM OPENROWSET(BULK...)kullanarak myTestSkipField.fmtbiçimi dosyası. Örnek toplu ithalat myTestSkipField-c.datveri dosyası içine myTestSkipFieldtablosu. Örnek tablo ve veri dosyası oluşturmak için bkz: "Örnek veri dosyası ve tablo" Bu konunun önceki kısımlarında.

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

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

Diğer veri alanlarını için xml biçimi dosyası

Bu örnekte sunulan biçim dosyasını başka bir biçim dosyasını, temel myTestSkipField.xml, hangi kullandığı karakter veri biçimi boyunca ve alanları karşılık gelen sayı ve sipariş sütunları tam olarak myTestSkipFieldtablosu. Bu biçim dosyasının içeriğini görüntülemek için bkz: (SQL Server) biçimi dosyası oluşturma.

Aşağıdaki biçimi dosyası myTestSkipField.xml, alanlar haritaları myTestSkipField-c.datsütunlar için myTestSkipFieldtablosu. Biçim dosyasını karakter veri biçimi kullanır.

myTestSkipField.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="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>

Örnekler

Aşağıdaki örnek INSERT ... SELECT * FROM OPENROWSET(BULK...)kullanarak myTestSkipField.Xmlbiçimi dosyası. Örnek toplu ithalat myTestSkipField-c.datveri dosyası içine myTestSkipFieldtablosu. Örnek tablo ve veri dosyası oluşturmak için bkz: "Örnek veri dosyası ve tablo" Bu konunun önceki kısımlarında.

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

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

[!NOT]

xml şeması ve ek örnek xml biçimi dosyaları sözdizimi hakkında bilgi için xml biçimi dosyaları (SQL Server).

Ayrıca bkz.

Başvuru

BCP yardımcı programı

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

Kavramlar

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

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