Aracılığıyla paylaş


Biçim dosyaları Giriº

Her bir veri dosyasına göre belirli bir tablo alanında adlı için biçimi bilgileri depolamak için kullanılan BIR dosya bir Biçim dosyası.Bir biçim dosyası toplu vermek veya toplu alma veriler için gerekli olan tüm biçimlendirme bilgileri sağlar.biçim dosyası, diğer yazılımları veri dosyalarını okumak veya diğer veri biçimleri ile uyumlu, çok az veya hiç düzenleme gerektiren veri dosyalarını yazmak için esnek bir sistemi sağlar.

In Microsoft SQL Server 2000 and earlier versions, bulk exporting and importing works with a single type of format file.Bu hala desteklenmektedir.Ancak, SQL Server 2005 ve sonraki sürümlerinde alternatif olarak da XML biçimi dosyaları destekler. Biçim dosyaları özgün türü olarak adlandırılır olmayan XML biçimi dosyaları.

Tüm biçimlendirme dosyaları, her alan bir veri dosyası açıklamaları içerir.XML biçimi dosyaları ayrıca, ilgili tablo sütunları açıklamalarını içerir.Genellikle, XML ve olmayan XML biçimi değiştirilebilir dosyalarıdır.Ancak, olmayan XML biçimi dosyaları birkaç avantaj sağlarlar, çünkü yeni biçimi dosyaları XML sözdizimi kullanmanızı öneririz.XML biçim dosyası aşağıdaki özelliklere sahiptir:

  • Self-describing ve kolay okumak, oluşturmak ve genişletmek için

  • Hedef sütunların veri türlerini içerir.

    Bu, veri dosyasındaki verileri nasıl temsil edilen veri türü, dosyanın her alanda ilişkili olduğu arasındaki ayrımı sağlar.Örneğin, bir veri dosyası, bir karakter verilerin sunumunu içeriyorsa, karşılık gelen SQL sütun tipi kaybolur.

    The bcp command and the BULK INSERT deyim use the hedef tablo columns to do the type conversion.Bu hedef tablo gerekli kılar.Bunun aksine, OPENROWSET(BULK...) işlevi, bir XML dayanır biçim dosyası bir veri dosyasından veri okunamıyor.Bu hedef tablo isteğe bağlı olur.

  • Yükleme bir Veri dosyasından tek büyük nesne (LOB) veri türü içeren bir alan sağlar.

Her dosya türünün yerleşimi hakkında daha fazla bilgi için bkz: Bu konunu sonraki bölümlerinde "Örnekleri,".

Zaman iş bir biçim dosyası gerekli?

INSERT...SELECT * FROM OPENROWSET(BULK...) deyim her zaman bir biçim dosyası gerektirir.

  • Için Kullanımıbcp veya BULK biçimli bir dosya kullanarak INSERT, basit durumlarda isteğe bağlıdır ve seyrek olarak gerekli olur.Ancak, karmaşık toplu alma durumlar için bir biçim dosyası sık gereklidir.

Dosya yoksa gereklidir:

  • Aynı veri dosyası, farklı şemaları bulunan birden çok tablo için bir kaynak olarak kullanılır.

  • Hedef tablo sütunları olduğunu alanları farklı sayıda veri dosyası vardır; örneğin:

    • Hedef tablo, hangi ya da varsayılan değer olarak tanımlanan veya NULL izin verilen en az bir sütun içerir.

    • Kullanıcılar, tablodaki bir veya daha fazla sütun üzerinde SELECT/ıNSERT izinlere sahip değilsiniz.

    • Tek bir veri dosyası, farklı şemaları bulunan iki veya daha çok tablo ile birlikte kullanılır.

  • Sütun sırasını, veri dosyasını ve tablo için farklıdır.

  • Sonlandırıcı karakterleri veya önek uzunluğu, veri dosyası sütunlarından arasında farklılık gösterir.

Not

Bir biçim dosyası olmadığında, bir Kullanımıbcp bir veri biçimi anahtarı ( komut belirtir-n, -c, -w, or -N) veya bir BULK INSERT işlemi DATAFILETYPE seçeneği belirtir, belirtilen veri biçimi alanları veri dosyasının yorumlanması varsayılan yöntem kullanılır.

Örnekler

Aşağıdaki örnekler bir olmayan XML düzenini biçim dosyası ve XML biçim dosyası.Bu biçim dosyaları karşılık gelen HumanResources.myTeam ' de tablo AdventureWorks Örnek Veritabanı'nı tıklatın. Bu tablo, dört sütun içerir: EmployeeID, Name, Title, ve ModifiedDate.

Not

Bu tablo ve oluşturmak hakkında daha fazla bilgi için bkz: HumanResources.myTeam tablo oluşturma.

C.Non-XML kullanarak biçim dosyası

-XML aşağıdaki olmayan biçim dosyası kullanan SQL Server yerel veri biçimi HumanResources.myTeam TABLO. Bu biçim dosyası aşağıdaki kullanılarak oluşturulmuş bcp Command.

bcp AdventureWorks.HumanResources.myTeam format nul -f myTeam.Fmt -n -T 
The contents of this format file are as follows: 9.0
4
1       SQLSMALLINT   0       2       ""   1     EmployeeID               ""
2       SQLNCHAR      2       100     ""   2     Name                     SQL_Latin1_General_CP1_CI_AS
3       SQLNCHAR      2       100     ""   3     Title                    SQL_Latin1_General_CP1_CI_AS
4       SQLNCHAR      2       100     ""   4     Background               SQL_Latin1_General_CP1_CI_AS

Daha fazla bilgi için bkz:Disk XML biçimi dosyaları anlama.

b.XML kullanarak biçim dosyası

Şu XML biçimi dosyası kullanan SQL Server yerel veri biçimi HumanResources.myTeam TABLO. Bu biçim dosyası aşağıdaki kullanılarak oluşturulmuş bcp Command.

bcp AdventureWorks.HumanResources.myTeam format nul -f myTeam.Xml -x -n -T 

biçim dosyası 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="NativePrefix" LENGTH="1"/>
  <FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="EmployeeID" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="Title" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="Background" xsi:type="SQLNVARCHAR"/>
 </ROW>
</BCPFORMAT>

Daha fazla bilgi için bkz:XML biçimi dosyaları anlama.