Aracılığıyla paylaş


Atla veri alanı için bir biçim dosyası kullanma

Sütun sayısı daha fazla alan içeren bir veri dosyası tablo.Bu konuda hem xml hem de 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 xml biçimi dosyaları değiştirme açıklanmaktadır.

Not

-xml ya da 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 veri dosyası ve tablo

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

Örnek tablo

Örnek bir tablo taşıyan bir iste myTestSkipField oluşturulmasını AdventureWorks örnek veritabanı altında dbo şema.To create this table, in Microsoft SQL Server Management Studio Query Editor, run the following code:

USE AdventureWorks2008R2;
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 alma verileri için myTestSkipField-c.dat içine myTestSkipField tablo, biçim dosyasını aşağıdakileri yapmanız gerekir:

  • İlk veri alan eşlemek için ilk sütun, PersonID.

  • İkinci veri atla alan.

  • Üçüncü veri eşleme alan ikinci sütuna, FirstName.

  • Dördüncü veri alan eşlemek için üçüncü sütun, LastName.

Daha fazla veri alanı için-xml biçimi dosyası

Aşağıdaki biçim dosyası myTestSkipField.fmt, eşler alanlarında myTestSkipField-c.dat sütunlar için myTestSkipField tablo.Karakter veri biçimi biçim dosyası 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 ExtraField sütununda biçim dosyası.

The myTestSkipField.fmt format file contains the following information:

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 bilgi için bkz: Olmayan xml biçimi dosyaları anlama.

Örnekler

Aşağıdaki örnek INSERT ... SELECT * FROM OPENROWSET(BULK...) kullanarak myTestSkipField.fmt biçim dosyası.Örnek toplu alır myTestSkipField-c.dat veri dosyası içine myTestSkipField tablo.Örnek tablo ve veri dosyası oluşturmak için "Örnek veri dosyası ve tablo," konusuna bakın. Bu konunun önceki kısımlarında.

De SQL Server Management Studio sorgu düzenleyicisinde aşağıdaki kodu çalıştırın:

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

Daha fazla veri alanı için xml biçimi dosyası

Başka biçim dosyası, bu örnekte sunulan biçim dosyası temel alan myTestSkipField.xml, hangi karakter boyunca veri biçimini kullanır ve alanları karşılık gelen sıra sütunlara ve içinde tam olarak myTestSkipField tablo.Bu içeriği görüntülemek için biçim dosyası, bkz: Bir biçim dosyası oluşturuluyor.

Aşağıdaki biçim dosyası myTestSkipField.xml, eşler alanlarında myTestSkipField-c.dat sütunlar için myTestSkipField tablo.Karakter veri biçimi biçim dosyası kullanır.

The myTestSkipField.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="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.Xml biçim dosyası.Örnek toplu alır myTestSkipField-c.dat veri dosyası içine myTestSkipField tablo.Örnek tablo ve veri dosyası oluşturmak için "Örnek veri dosyası ve tablo," konusuna bakın. Bu konunun önceki kısımlarında.

De SQL Server Management Studio sorgu düzenleyicisinde aşağıdaki kodu çalıştırın:

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

Not

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