bcp kullanırken uyumluluk veri biçimlerini belirtme (SQL Server)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalitik Platform Sistemi (PDW)Microsoft Fabric'te SQL veritabanı

Bu makale, veri formatı özelliklerini, alana özgü istemleri ve aracın XML olmayan bir dosyasında bcp alan alan veri nasıl saklanacağını açıklar. Bu bilgiler, SQL Server verilerini toplu olarak başka bir programa, örneğin başka bir veritabanı programına toplu aktarma yaparken yardımcı olabilir. Kaynak tablodaki varsayılan veri formatları (yerli, karakter veya Unicode) diğer programın beklediği veri düzeniyle uyumlu olmayabilir. Bir uyumsuzluk varsa, veriyi dışa aktarırken veri düzenini tanımlamanız gerekir.

Uyarı

Veri içe aktarma veya dışa aktarma için veri formatları hakkında daha fazla bilgi için bkz. Toplu ithalat veya toplu ihracat için veri formatları.

BCP veri formatı özellikleri

Bir veri dosyasındaki her alanın yapısını aşağıdaki veri formatı öznitelikleriyle belirtmek için kullanılır bcp :

  • Dosya depolama türü

    Dosya depolama türü, verilerin veri dosyasında nasıl depolandığını açıklar. Veriyi veritabanı tablosu tipi (yerel format), karakter temsili (karakter formatı) olarak veya örtük dönüşümü destekleyen herhangi bir veri türü olarak aktarabilirsiniz. Örneğin, bir smallint değerini int olarak kopyalayabilirsiniz. Kullanıcı tanımlı veri türleri, temel türleri olarak dışa aktarılır. Daha fazla bilgi için bcp kullanarak dosya depolama tipini belirtin bkz.

  • Ön ek uzunluğu

    Yerel biçimdeki verilerin bir veri dosyasına toplu dışa aktarımı için en kompakt dosya depolamasını sağlamak amacıyla, bcp her alanın başına alanın uzunluğunu belirten bir veya daha fazla karakter ekler. Bu karakterler uzunluk ön eki karakterleri olarak adlandırılır. Daha fazla bilgi için, bcp kullanarak veri dosyalarında önek uzunluğunu belirt bölümüne bakınız.

  • Alan uzunluğu

    Alan uzunluğu, verileri karakter biçiminde göstermek için gereken en fazla karakter sayısını gösterir. Verilerin yerel biçimde depolandığında alan uzunluğu zaten bilinir. Daha fazla bilgi için, bcp kullanarak alan uzunluğunu belirt sayfasına bakınız.

  • Alan sonlandırıcısı

    Karakter veri alanları için, isteğe bağlı sonlandırıcı karakterler, veri dosyasında her alanın sonunu ( bir alan terminatörü kullanarak) ve her satırın sonunu ( bir satır sonlandırıcı kullanarak) işaretlemenize olanak tanır. Karakterleri sonlandırmak, bir alanın veya satırın sona erdiği ve diğerinin başladığı veri dosyasını okuyan programlara göstermenin bir yoludur. Daha fazla bilgi için bkz. Alan ve satır sonlandırıcılarını belirtme.

Alana özgü soruların genel görünümü

in komutunu bcp veya -f seçeneğiyle etkileşimli olarak çalıştırır, ancak kaynak ya da hedef tablodaki her sütun için ne biçim dosyası anahtarını (-n) ne de veri biçimi anahtarlarından birini (-c, -w, -N veya bcp) belirtirseniz, out yukarıdaki niteliklerin her birini sırayla ister. Her komutta, bcp tablo sütununun SQL Server veri tipine göre varsayılan bir değer sağlar. Tüm istekler için varsayılan değeri kabul etmek, komut satırında yerel format (-n) belirtmekle aynı sonucu verir. Her istem, [default] köşeli ayraç içinde varsayılan bir değer görüntüler. Görüntülenen varsayılan seçeneği kabul etmek için ENTER tuşuna basın. Varsayılan değer dışında bir değer belirtmek için istemde yeni değeri girin.

Example

Aşağıdaki örnekte, verileri HumanResources.myTeam tablosundan bcp dosyasına etkileşimli olarak toplu dışa aktarmak için myTeam.txt kullanılır. Örneği çalıştırabilmeniz için önce bu tabloyu oluşturmanız gerekir. Tablo ve nasıl oluşturulacağı hakkında bilgi için HumanResources.myTeam Örnek Tablosu'na bakınız.

Komut ne bir biçim dosyası ne de veri türü belirtir, bu nedenle bcp veri formatı bilgisi için istemler verir. Windows komut isteğinde şunları yazın:

bcp AdventureWorks.HumanResources.myTeam out myTeam.txt -T

Her sütun için, bcp alana özgü değerler ister. Aşağıdaki örnek, tablonun ve EmployeeID sütunları için Name alana özgü istemleri gösterir ve her sütun için varsayılan dosya depolama türünü (yerel biçim) önerir. ve EmployeeIDName sütunlarının önek uzunlukları sırasıyla 0 ve 2'dir. Kullanıcı, her alanın sonlandırıcısı olarak bir virgül (,) belirtir.

Enter the file storage type of field EmployeeID [smallint]:

Enter prefix-length of field EmployeeID [0]:

Enter field terminator [none]:,

Enter the file storage type of field Name [nvarchar]:

Enter prefix length of field Name [2]:

Enter field terminator [none]:,

.

.

.

Tablo sütunlarının her biri için gerektiğinde karşılık gelen istemler sırasıyla görüntülenir.

Alan alan verileri XML olmayan bir formatta depolayın

Tüm tablo sütunlarını belirttikten sonra, bcp, az önce sağladığınız alan bazındaki bilgileri depolayan XML dışı bir biçim dosyasını isteğe bağlı olarak oluşturmanızı ister (önceki örneğe bakın). Bir format dosyası oluşturmayı seçerseniz, verileri o tablodan dışa aktardığınızda veya benzer yapılandırılmış verileri SQL Server'a aktardığınızda bunu kullanabilirsiniz.

Uyarı

Biçim dosyasını kullanarak veri dosyasındaki verileri SQL Server örneğine toplu olarak içeri aktarabilir veya biçimi yeniden belirtmeye gerek kalmadan tablodaki verileri toplu olarak dışarı aktarabilirsiniz. Daha fazla bilgi için, Veri içe aktarmak veya dışa aktarmak için dosyaları formatlama bölümünü inceleyebilirsiniz.

Aşağıdaki örnek adlı myFormatFile.fmtXML olmayan bir biçim dosyası oluşturur:

Do you want to save this format information in a file? [Y/n] y

Host filename: [bcp.fmt]myFormatFile.fmt

Format dosyasının bcp.fmtvarsayılan adı , ancak isterseniz farklı bir dosya adı da belirtebilirsiniz.

Uyarı

Dosya depolama türü olarak karakter ya da yerel biçim gibi tek bir veri biçimi kullanan bir veri dosyası için, verileri dışarı aktarmadan veya içeri aktarmadan format seçeneğini kullanarak hızlıca bir biçim dosyası oluşturabilirsiniz. Bu yaklaşım kolaydır ve ya XML formatlı dosya ya da XML olmayan bir dosya oluşturmanıza olanak tanır. Daha fazla bilgi için bcp ile bir format dosyası oluştur bölümünü inceleyebilirsiniz.