Aracılığıyla paylaş


XML olmayan biçim dosyalarını kullanma (SQL Server)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQL Server'da, toplu dışarı ve içeri aktarma için iki tür biçim dosyası desteklenir: XML olmayan biçim dosyaları ve XML biçim dosyaları.

XML olmayan biçim dosyalarının avantajları

Bcp komutunda biçim seçeneğini belirterek XML olmayan bir biçim dosyasını otomatik olarak oluşturabilirsiniz.

Bcp komutunda var olan bir biçim dosyası belirttiğinizde, komut biçim dosyasında kaydedilen değerleri kullanır ve sizden dosya depolama türünü, ön ek uzunluğunu, alan uzunluğunu veya alan sonlandırıcısını istemez.

Karakter verileri veya yerel veriler gibi belirli bir veri türü için biçim dosyası oluşturabilirsiniz.

Her veri alanı için etkileşimli olarak belirtilen öznitelikleri içeren XML olmayan bir biçim dosyası oluşturabilirsiniz. Daha fazla bilgi için bkz. bcp (SQL Server) kullanırken uyumluluk veri biçimlerini belirtme.

XML biçim dosyaları, XML olmayan biçim dosyalarına göre çeşitli avantajlar sunar. Daha fazla bilgi için bkz. XML biçim dosyaları (SQL Server).

Uyarı

Toplu ekleme de dahil olmak üzere bu söz dizimi Azure Synapse Analytics'te desteklenmez. Azure Synapse Analytics ve diğer bulut veritabanı platformu tümleştirmelerinde, veri aktarımını Azure Data Factory 'da COPY deyiminikullanarak veya COPY INTO ve PolyBase gibiT-SQL deyimlerini kullanarak gerçekleştirin.

XML olmayan biçim dosyalarının yapısı

XML olmayan biçim dosyası, belirli bir yapıya sahip bir metin dosyasıdır. XML olmayan biçim dosyası, her tablo sütununun dosya depolama türü, ön ek uzunluğu, alan uzunluğu ve alan sonlandırıcısı hakkında bilgi içerir.

Aşağıdaki çizimde, ÖRNEK XML olmayan biçim dosyası için biçim dosyası alanları gösterilmektedir.

Xml olmayan bir biçim dosyasının alanlarını tanımlar.

Sürüm ve Sütun sayısı alanları yalnızca bir kez oluşur. Anlamları aşağıdaki tabloda açıklanmıştır.

Dosya biçimi alanı Açıklama
Sürüm bcp yardımcı programının sürüm numarası:

9.0 = SQL Server 2005 (9.x)

10.0 = SQL Server 2008 (10.0.x)

11.0 = SQL Server 2012 (11.x)

12.0 = SQL Server 2014 (12.x)

13.0 = SQL Server 2016 (13.x)

14.0 = SQL Server 2017 (14.x)

15.0 = SQL Server 2019 (15.x)

16.0 = SQL Server 2022 (16.x)

Sürüm numarası yalnızca bcp tarafından tanınır, Transact-SQL tarafından tanınmaz.

Not: Biçim dosyasını okumak için kullanılan bcp yardımcı programının sürümü, biçim dosyasını oluşturmak için kullanılan sürümle aynı veya daha sonraki bir sürüm olmalıdır. Örneğin, SQL Server 2012 (11.x) bcp sürüm 10.0 biçimli bir dosyayı okuyabilir, SQL Server 2008 (10.0.x) bcp tarafından oluşturulur, ancak SQL Server 2008 (10.0.x) bcp , SQL Server 2014 (12.x) bcp tarafından oluşturulan sürüm 12.0 biçimli bir dosyayı okuyamaz.
Sütun sayısı Veri dosyasındaki alan sayısı. Bu sayı tüm satırlarda aynı olmalıdır.

Diğer biçim dosyası alanları, toplu içeri veya dışarı aktarılacak veri alanlarını açıklar. Her veri alanı, biçim dosyasında ayrı bir satır gerektirir. Her biçim dosyası satırı, aşağıdaki tabloda açıklanan biçim dosyası alanları için değerler içerir.

Dosya biçimi alanı Açıklama
Konak dosya alanı sırası Veri dosyasındaki her alanın konumunu gösteren sayı. Satırdaki ilk alan 1'dir ve bu şekilde devam edilir.
Konak dosyası veri türü Veri dosyasının belirli bir alanında depolanan veri türünü gösterir. ASCII veri dosyalarıyla SQLCHAR kullanın; yerel biçimli veri dosyaları için varsayılan veri türlerini kullanın. Daha fazla bilgi için bkz . bcp (SQL Server) kullanarak dosya depolama türünü belirtme.
Prefix uzunluğu Alan için uzunluk ön eki karakter sayısı. Geçerli ön ek uzunlukları 0, 1, 2, 4 ve 8'tir. Uzunluk ön ekinin belirtilmesinden kaçınmak için bunu 0 olarak ayarlayın. Alan veri değerleri içeriyorsa NULL uzunluk ön eki belirtilmelidir. Daha fazla bilgi için bkz. bcp (SQL Server) kullanarak veri dosyalarında ön ek uzunluğunu belirtme.
Konak dosyası veri uzunluğu Veri dosyasının belirli bir alanında depolanan veri türünün bayt cinsinden uzunluk üst sınırı.

Sınırlandırılmış bir metin dosyası için XML olmayan bir biçim dosyası oluşturuyorsanız, her veri alanının konak dosyası veri uzunluğu için 0 belirtebilirsiniz. Uzunluğu 0 olan bir ön eki ve sonlandırıcısı bulunan sınırlandırılmış bir metin dosyası içeri aktarıldığında, alan tarafından kullanılan depolama alanı verilerin uzunluğuna ve sonlandırıcıya eşit olduğundan alan uzunluğu değeri yoksayılır.

Daha fazla bilgi için bkz. Bcp (SQL Server) Kullanarak Alan Uzunluğunu Belirtme.
Terminator Veri dosyasındaki alanları ayırmak için sınırlayıcı. Yaygın sonlandırıcılar virgül (,), sekme (\t) ve satır sonu (\r\n). Daha fazla bilgi için bkz. Alan ve satır sonlandırıcılarını (SQL Server) belirtme.
Sunucu sütun sırası SQL Server tablosunda sütunların görünme sırası. Örneğin, veri dosyasındaki dördüncü alan bir SQL Server tablosundaki altıncı sütunla eşleniyorsa, dördüncü alanın sunucu sütun sırası 6'dır.

Tablodaki bir sütunun veri dosyasından herhangi bir veri almasını önlemek için sunucu sütun sırası değerini olarak 0ayarlayın.
Sunucu sütun adı SQL Server tablosundan kopyalanan sütunun adı. Alanın gerçek adı gerekli değildir, ancak biçim dosyasındaki alan boş olmamalıdır.
Sütun harmanlama Karakter ve Unicode verilerini veri dosyasında depolamak için kullanılan harmanlama.

Uyarı

Bir biçim dosyasını, alanların sayısının veya sırasının tablo sütunlarının sayısından veya sırasından farklı olduğu bir veri dosyasından toplu içeri aktarmanıza olanak verecek şekilde değiştirebilirsiniz. Daha fazla bilgi için İlgili Görevler listesine bakın.

XML olmayan biçim dosyası örneği

Aşağıdaki örnekte, önceden oluşturulmuş xml olmayan biçim dosyası (myDepartmentIdentical-f-c.fmt) gösterilmektedir. Bu dosya, örnek veritabanındaki tablodaki HumanResources.DepartmentAdventureWorks2025 her sütun için bir karakter-veri alanı açıklar.

oluşturulan biçim dosyası myDepartmentIdentical-f-c.fmtaşağıdaki bilgileri içerir:

12.0
4
1       SQLCHAR       0       7       "\t"     1     DepartmentID     ""
2       SQLCHAR       0       100     "\t"     2     Name             SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     "\t"     3     GroupName        SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       24      "\r\n"   4     ModifiedDate     ""

Uyarı

Bu örnek XML olmayan biçim dosyasıyla ilgili olarak biçim dosyası alanlarını gösteren bir çizim için bkz. XML Olmayan Biçim Dosyalarının Yapısı.