Aracılığıyla paylaş


Biçimi dosyaları Giriº

Her alana bir veri dosyasına göre belirli bir tablo olarak adlandırılan için format bilgilerini depolamak için kullanılan bir dosya bir biçim dosyası.Bir biçim dosyası toplu vermek için gerekli olan tüm biçim bilgileri sağlar veya toplu alma veri.Bir biçim dosyası ile diğer veri biçimlerini uymak için veya diğer yazılımlardan veri dosyalarını okumak için çok az veya hiç düzenleme gerektiren veri dosyalarını yazmak için esnek bir sistem 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ümlerini destekleyen da xml biçimi dosyaları farklı bir alternatif.Biçimi dosyaları özgün tür adı verilir - xml biçimi dosyaları.

Tüm biçimi dosyaları veri dosyasındaki her alan açıklamalarını içerir.xml biçimi dosyaları ayrıca karşılık gelen tablo sütunları açıklamalarını içerir.Genel olarak, xml ve olmayan xml biçimi dosyaları birbiri yerine kullanılabilirler.Ancak, bunlar olmayan xml biçimi dosyaları birkaç avantaj sağlar çünkü yeni biçimi dosyaları xml sözdizimi kullanmanızı öneririz.xml biçim dosyası aşağıdaki özelliklere sahiptir:

  • Bağımsızdırlar ve okumak, oluşturmak ve genişletmek kolay.

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

    Bu veri dosyasındaki verilerin gösterilmesi ve hepsiyle ilişkili veri türü arasında ayrım sağlar alan dosyasında.Örneğin, bir veri dosyası verilerin karakter gösterimi içeriyorsa, karşılık gelen sql sütun türü kaybolur.

    The bcp command and the BULK INSERT statement use the target table columns to do the type conversion.Bu hedef tablo gerekli kılar.Bunun tersine, bir xml openrowset(bulk...) işlev kullanır biçim dosyası bir veri dosyasından veri okunamıyor.Bu hedef tablo isteğe bağlı hale getirir.

  • Bir veri dosyasından bir tek büyük nesne (lob) veri türü içeren bir alan yüklenmesini sağlar.

  • Bir biçim dosyası sözdizimi operasyonun yönünü bağımsızdır; diğer bir deyişle, sözdizimi aynıdır toplu vermek ve toplu alma.

"Örnekleri" biçimindeki dosyaları her tür düzeni hakkında daha fazla bilgi için bkz: Bu konuda daha sonra.

Bir biçim dosyası ne zaman gereklidir?

INSERT...SEÇİN * dan openrowset(bulk...) deyim her zaman gerektiren bir biçim dosyası.

  • İçin bcp veya bulk INSERT, basit durumlarda, bir biçim dosyası isteğe bağlı ve nadiren gerekir.Ancak, toplu alma karmaşık durumlar için bir biçim dosyası sık gereklidir.

Biçimi dosyaları durumunda gereklidir:

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

  • Hedef Tablo sütunları olan alanları farklı sayıda veri dosyası vardır; Örneğin:

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

    • Kullanıcılar bir veya daha fazla sütun üzerinde select/INSERT izni olmayan tablo.

    • Tek bir veri dosyasından farklı şemaları bulunan iki veya daha fazla tablo ile kullanılır.

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

  • Sonlandırıcı karakterler veya önek uzunlukları veri dosyasının sütunlar arasında farklılık gösterir.

Not

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

Örnekler

Aşağıdaki örnekler düzenini xml olmayan biçim dosyası ve XML biçim dosyası.Bu biçim dosyaları karşılık HumanResources.myTeam , tablo AdventureWorks2008R2 örnek veritabanı.Bu tablo, dört sütun içerir: EmployeeID, Name, Title, and ModifiedDate.

Not

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

A.xml olmayan kullanmabiçim dosyası

Şu olmayan xml biçimi dosyası kullanır SQL Server yerel verileri biçimlendirmek için HumanResources.myTeam tablo.Bu biçim dosyası aşağıdaki kullanılarak oluşturulmuş bcp komut.

bcp AdventureWorks2008R2.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: Olmayan xml biçimi dosyaları anlama.

B.Bir xml kullanmabiçim dosyası

Şu xml biçimi dosyası kullanır SQL Server yerel verileri biçimlendirmek için HumanResources.myTeam tablo.Bu biçim dosyası aşağıdaki kullanılarak oluşturulmuş bcp komut.

bcp AdventureWorks2008R2.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.

Ayrıca bkz.

Kavramlar