Aracılığıyla paylaş


bcp yardımcı programı

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

Toplu kopyalama programı yardımcı programı (bcp) verileri Microsoft SQL Server örneği ile kullanıcı tarafından belirtilen biçimdeki bir veri dosyası arasında toplu olarak kopyalar.

Linux'ta bcp kullanımı için, Linux'ta SQL Server komut satırı araçlarını sqlcmd ve bcp yüklemeye bakın. Azure Synapse Analytics ile bcp kullanma hakkında ayrıntılı bilgi için bkz. bcpile veri yükleme.

bcp yardımcı programı, çok sayıda yeni satırı SQL Server tablolarına aktarmak veya tabloların dışındaki verileri veri dosyalarına aktarmak için kullanılabilir. queryout seçeneğiyle kullanılması dışında yardımcı program Transact-SQL bilgisi gerektirmez. Verileri tabloya aktarmak için, bu tablo için oluşturulmuş bir biçim dosyası kullanmanız veya tablonun yapısını ve sütunları için geçerli olan veri türlerini anlamanız gerekir.

Not

Verilerinizi yedeklemek için bcp kullanıyorsanız, veri biçimini kaydetmek için bir biçim dosyası oluşturun. bcp veri dosyaları herhangi bir şema veya biçim bilgisi içermediğinden, bir tablo veya görünüm bırakıldığında ve bir biçim dosyanız yoksa verileri içeri aktaramayabilirsiniz.

bcp söz dizimi için kullanılan söz dizimi kuralları için bkz.Transact-SQL söz dizimi kuralları.

bcp yardımcı programının en son sürümünü indirme

Komut satırı araçları Genel Kullanılabilirlik (GA) aracıdır ancak SQL Server 2019 (15.x) ve sonraki sürümleri için yükleyici paketiyle birlikte yayımlanır.

Windows

  • SQL Server için ODBC Sürücüsünü İndirin
  • SQL Server (x64) için Microsoft Komut Satırı Yardımcı Programları 15'i İndirin
  • SQL Server (x86) için Microsoft Komut Satırı Yardımcı Programları 15'i İndirin

Linux ve macOS

sqlcmd ve bcp Linux ve macOS'a yükleme yönergeleri için bkz. sqlcmd ve bcp'yi Linux sqlcmd ve bcp'ye yükleme .

Sürüm bilgileri

  • Sürüm numarası: 15.0.4298.1
  • Derleme numarası: 15.0.4298.1
  • Sürüm tarihi: 7 Nisan 2023

bcp, Azure SQL Veritabanı, Microsoft Fabric'teki SQL veritabanı ve Azure Synapse Analytics için çok faktörlü kimlik doğrulaması (MFA) desteği de dahil olmak üzere Microsoft Entra kimlik doğrulamasını destekler.

Not

Microsoft Entra ID daha önce Azure Active Directory (Azure AD) olarak biliniyordu.

Sistem gereksinimleri

  • Windows 8, Windows 8.1, Windows 10, Windows 11

  • Windows Server 2016, Windows Server 2019, Windows Server 2022

Bu bileşen, SQL Serveriçin en son Microsoft ODBC Sürücüsü 17'yi gerektirir.

bcp sürümünü denetlemek için komutunu yürüterek 15.0.4298.1 veya sonraki bir sürümün kullanımda olduğunu onaylayın.

Not

sqlcmd ve bcp Linux'ta da kullanılabilir. Daha fazla bilgi için bkz. Linux üzerinde SQL Server komut satırı araçlarını (sqlcmd ve bcp) yükleme.

Sözdizimi

bcp [database_name.] schema.{table_name | view_name | "query"}
    {in data_file | out data_file | queryout data_file | format nul}
                                                                                                         
    [-a packet_size]
    [-b batch_size]
    [-c]
    [-C { ACP | OEM | RAW | code_page } ]
    [-d database_name]
    [-D]
    [-e err_file]
    [-E]
    [-f format_file]
    [-F first_row]
    [-G Azure Active Directory Authentication]
    [-h"hint [,...n]"]
    [-i input_file]
    [-k]
    [-K application_intent]
    [-l login_timeout]
    [-L last_row]
    [-m max_errors]
    [-n]
    [-N]
    [-o output_file]
    [-P password]
    [-q]
    [-r row_term]
    [-R]
    [-S [server_name[\instance_name]]]
    [-t field_term]
    [-T]
    [-U login_id]
    [-v]
    [-V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 ) ]
    [-w]
    [-x]

Komut satırı seçenekleri

database_name

Belirtilen tablo veya görünümün bulunduğu veritabanının adı. Belirtilmezse, bu kullanıcı için varsayılan veritabanıdır.

Ayrıca, -dile veritabanı adını açıkça belirtebilirsiniz.

şema

Tablo veya görünümün sahibinin adı. şema, işlemi gerçekleştiren kullanıcı belirtilen tabloya veya görünüme sahipse isteğe bağlıdır. şema belirtilmezse ve işlemi gerçekleştiren kullanıcı belirtilen tablo veya görünüme sahip değilse, SQL Server bir hata iletisi döndürür ve işlem iptal edilir.

tablo_adı

SQL Server'a veri aktarırken hedef tablonun adı (in) ve SQL Server'dan veri dışarı aktarılırken kaynak tablo (out).

görünüm_adı

SQL Server'a veri kopyalarken hedef görünümün adı (in) ve SQL Server'dan veri kopyalarken kaynak görünümü (out). Yalnızca tüm sütunların aynı tabloya başvuracağı görünümler hedef görünümler olarak kullanılabilir. Görünümlere veri kopyalama kısıtlamaları hakkında daha fazla bilgi için bkz. insert.

"query"

Sonuç kümesi döndüren bir Transact-SQL sorgusu. Sorgu birden çok sonuç kümesi döndürürse, veri dosyasına yalnızca ilk sonuç kümesi kopyalanır; sonraki sonuç kümeleri yoksayılır. Sorgunun çevresinde çift tırnak işaretleri ve sorguya eklenmiş her şeyin çevresinde tek tırnak işaretleri kullanın. queryout, bir sorgudan verileri toplu kopyalarken de belirtilmelidir.

Sorgu, saklı yordamın içinde başvurulan tüm tablolar mevcut olduğu sürece, bcp deyimini yürütmeden önce saklı yordama başvurabilir. Örneğin, saklı yordam bir geçici tablo oluşturursa, geçici tablo yalnızca çalışma anında kullanılabildiğinden ve deyim yürütme anında kullanılmadığından bcp deyim başarısız olur. Bu durumda, saklı yordamın sonuçlarını bir tabloya eklemeyi ve ardından bcp kullanarak tablodaki verileri bir veri dosyasına kopyalamayı göz önünde bulundurun.

içinde

Bir dosyadan veritabanı tablosuna veya görünümüne kopyalar. Toplu kopyalamanın yönünü belirtir.

dışarıya

Veritabanı tablosu veya görünümünden bir dosyaya kopyalar. Toplu kopyalamanın yönünü belirtir.

Mevcut bir dosya belirtirseniz, dosyanın üzerine yazılır. Verileri ayıklarken, bcp yardımcı programı boş bir dizeyi null ve null bir dizeyi boş dize olarak temsil eder.

veri_dosyası

Veri dosyasının tam yolu. Veriler SQL Server'a toplu olarak aktarıldığında, veri dosyası belirtilen tabloya veya görünüme kopyalanacak verileri içerir. Veriler SQL Server'dan toplu olarak dışarı aktarıldığında, veri dosyası tablo veya görünümden kopyalanan verileri içerir. Yol 1 ile 255 karakter arasında olabilir. Veri dosyası en fazla 2^63 - 1 satır içerebilir.

sorgu çıktısı

Bir sorgudan kopyalar ve yalnızca sorgudan verileri toplu olarak kopyalarken belirtilmelidir.

biçim

Belirtilen seçeneğe (-n, -c, -wveya -N) ve tablo veya görünüm sınırlayıcılarına göre bir biçim dosyası oluşturur. Verileri toplu olarak kopyalarken, bcp komutu bir biçim dosyasına başvurabilir ve bu da sizi biçim bilgilerini etkileşimli olarak yeniden girişten kurtarır. format seçeneği -f seçeneğini gerektirir; BIR XML biçim dosyası oluşturmak için -x seçeneği de gerekir. Daha fazla bilgi için bkz. Biçim Dosyası Oluşturma (SQL Server). değer olarak nul belirtmelisiniz (format nul).

-a packet_size

Sunucuya gönderilen ve sunucudan gönderilen ağ paketi başına bayt sayısını belirtir. Sunucu yapılandırma seçeneği, SQL Server Management Studio (veya sp_configure sistem saklı yordamı) kullanılarak ayarlanabilir. Ancak, sunucu yapılandırma seçeneği bu seçenek kullanılarak tek tek geçersiz kılınabilir. packet_size 4.096 bayttan 65.535 bayta kadar olabilir; varsayılan değer 4096' dir.

Artan paket boyutu, toplu kopyalama işlemlerinin performansını artırabilir. Daha büyük bir paket istenirse ancak verilemiyorsa, varsayılan değer kullanılır. bcp yardımcı programı tarafından oluşturulan performans istatistikleri, kullanılan paket boyutunu gösterir.

-b batch_size

İçeri aktarılan verilerin toplu işlemi başına satır sayısını belirtir. Her toplu işlem, tamamı taahhüt edilmeden önce ayrı bir işlem olarak içeri aktarılır ve kayıt edilir. Varsayılan olarak, veri dosyasındaki tüm satırlar tek bir toplu işlem olarak içeri aktarılır. Satırları birden çok toplu iş arasında dağıtmak için, veri dosyasındaki satır sayısından daha küçük bir batch_size belirtin. Herhangi bir toplu işlem için işlem başarısız olursa, yalnızca ilgili toplu işlemden eklemeler geri alınacaktır. Kaydedilmiş işlemler tarafından zaten içeri aktarılan toplu işlemler sonraki bir hatadan etkilenmez.

Bu seçeneği -h "ROWS_PER_BATCH=<bb>" seçeneğiyle kullanmayın.

-c

bir karakter veri türü kullanarak işlemi gerçekleştirir. Bu seçenek her alan için bir uyarı vermez; depolama tipi olarak karakter'i, ön ekleri olmadan ve alan ayırıcı olarak \t (sekme karakteri) ve satır sonlandırıcı olarak \r\n (yeni satır karakteri) kullanır. -c -wile uyumlu değildir.

Daha fazla bilgi için bkz. Verileri içeri veya dışarı aktarmak için karakter biçimini kullanma (SQL Server).

-C { ACP | OEM | RAW | code_page }

Veri dosyasındaki verilerin kod sayfasını belirtir. code_page yalnızca veri karakter, varcharveya 127'den büyük ya da 32'den küçük karakter değerlerine sahip metin sütunları olduğunda ilgilidir.

Not

65001 seçeneğinin harmanlama/kod sayfası belirtimine göre önceliğe sahip olmasını istemeniz dışında, biçim dosyasındaki her sütun için bir harmanlama adı belirtmenizi öneririz.

Kod sayfası değeri Açıklama
ACP ANSI/Microsoft Windows (ISO 1252).
OEM (Orijinal Ekipman Üreticisi) İstemci tarafından kullanılan varsayılan kod sayfası. bu, -C belirtilmezse kullanılan varsayılan kod sayfasıdır.
ÇİĞ Bir kod sayfasından diğerine dönüştürme gerçekleşmez. Bu en hızlı seçenektir çünkü dönüştürme gerçekleşmez.
code_page Belirli kod sayfası numarası; örneğin, 850.

Sürüm 13 (SQL Server 2016 (13.x)) öncesi sürümler, 65001 (UTF-8 kodlama) kod sayfasını desteklemez. 13 ile başlayan sürümler, UTF-8 kodlamasını SQL Server'ın önceki sürümlerine aktarabilir.

-d database_name

Bağlanacak veritabanını belirtir. Varsayılan olarak, bcp kullanıcının varsayılan veritabanına bağlanır. -d <database_name> ve üç parçalı bir ad (database_name.schema.table, bcp) için ilk parametre olarak geçirilirse, veritabanı adını iki kez belirtemediğiniz için bir hata oluşur. database_name kısa çizgi (-) veya eğik çizgi (/) ile başlıyorsa, -d ve veritabanı adı arasına boşluk eklemeyin.

-D

bcp -S seçeneğine geçirilen değerin veri kaynağı adı (DSN) olarak yorumlanmasına neden olur. DSN, komut satırlarını basitleştirmek, MultiSubnetFailover gibi normalde komut satırından erişilemeyen sürücü seçeneklerini zorlamak veya hassas kimlik bilgilerinin komut satırı bağımsız değişkenleri olarak bulunmasına karşı korunmasına yardımcı olmak için sürücü seçeneklerini gömmek amacıyla kullanılabilir. Daha fazla bilgi için bkz. sqlcmd'de DSN Desteği ve sqlcmdile bağlanma konusundaki bcp.

-e err_file

bcp yardımcı programının dosyadan veritabanına aktaramayan satırları depolamak için kullanılan hata dosyasının tam yolunu belirtir. bcp komutundan gelen hata iletileri kullanıcının iş istasyonuna gider. Bu seçenek kullanılmıyorsa bir hata dosyası oluşturulmaz.

err_file kısa çizgi (-) veya eğik çizgi (/) ile başlıyorsa, -e ile err_file değeri arasında boşluk eklemeyin.

-E

İçeri aktarılan veri dosyasındaki kimlik değerinin veya değerlerinin kimlik sütunu için kullanılacağını belirtir. -E belirtilmemişse, içeri aktarılan veri dosyasındaki bu sütunun kimlik değerleri yoksayılır ve SQL Server tablo oluşturma sırasında belirtilen başlangıç ve artış değerlerine göre otomatik olarak benzersiz değerler atar. Daha fazla bilgi için bkz. DBCC CHECKIDENT.

Veri dosyası tablo veya görünümdeki kimlik sütunu için değerler içermiyorsa, verileri içeri aktarırken tablodaki veya görünümdeki kimlik sütununun atlanması gerektiğini belirtmek için bir biçim dosyası kullanın; SQL Server, sütun için otomatik olarak benzersiz değerler atar.

-E seçeneğinin özel bir izin gereksinimi vardır. Daha fazla bilgi için, bu makalenin devamında yer alan "Açıklamalar" bölümüne bakın.

-f format_file

Biçim dosyasının tam yolunu belirtir. Bu seçeneğin anlamı, kullanıldığı ortama bağlıdır, aşağıdaki gibi:

  • -f format seçeneğiyle kullanılırsa, belirtilen tablo veya görünüm için belirtilen format_file oluşturulur. XML biçim dosyası oluşturmak için -x seçeneğini de belirtin. Daha fazla bilgi için bkz. Biçim Dosyası Oluşturma (SQL Server).

  • in veya out seçeneğiyle kullanıldığında, -f mevcut bir biçim dosyası gerektirir.

    Not

    in veya out seçeneğiyle bir biçim dosyası kullanmak isteğe bağlıdır. -f seçeneğinin olmaması durumunda, -n, -c, -wveya -N belirtilmezse, komut biçim bilgilerini ister ve yanıtlarınızı bir biçim dosyasına kaydetmenize olanak tanır (varsayılan dosya adı bcp.fmt).

format_file kısa çizgi (-) veya eğik çizgi (/) ile başlıyorsa, -f ile format_file değeri arasında boşluk eklemeyin.

-F ilk_satır

Bir tablodan dışarı aktarılacağını veya veri dosyasından içeri aktarılacağını belirten ilk satırın sayısını belirtir. Bu parametre, (>) 0'dan büyük fakat (<)'den küçük veya toplam satır sayısına eşit (=) bir değer gerektirir. Bu parametre olmadığında, varsayılan değer dosyanın ilk satırıdır.

first_row değeri 2^63-1'e kadar olan pozitif bir tamsayı olabilir. -F first_row 1 tabanlıdır.

-G

Şunlar için geçerlidir: Azure SQL Veritabanı, Microsoft Fabric'teki SQL veritabanı ve yalnızca Azure Synapse Analytics.

Bu anahtar, istemci tarafından kullanıcının Microsoft Entra Kimliği ile kimlik doğrulaması yapılacağını belirtmek için kullanılır. -G anahtarı, sürüm 14.0.3008.27 veya sonraki sürümleri gerektirir. Sürümünüzü belirlemek için bcp -vkomutunu çalıştırın. Daha fazla bilgi için bkz. Microsoft Entra kimlik doğrulamasını SQL Veritabanı veya Azure Synapse Analytics ile kullanma veya Fabric'da SQL veritabanında kimlik doğrulaması .

Önemli

Microsoft Entra etkileşimli kimlik doğrulaması şu anda Linux veya macOS'ta desteklenmiyor. Microsoft Entra tümleşik kimlik doğrulaması, SQL Server sürüm 17.6.1 ve sonraki sürümleri için Microsoft ODBC Sürücüsü 17'yi vedüzgün yapılandırılmış bir Kerberos ortamını gerektirir.

Bahşiş

bcp sürümünüzün Microsoft Entra kimlik doğrulaması desteği içerip içermediğini denetlemek için bcp --help yazın ve kullanılabilir bağımsız değişkenler listesinde -G gördüğünüzden emin olun.

  • Microsoft Entra kullanıcı adı ve parola

    Microsoft Entra kullanıcı adı ve parolasını kullanmak istediğinizde, -G seçeneğini sağlayabilir ve ayrıca -U ve -P seçeneklerini sağlayarak kullanıcı adı ve parolayı kullanabilirsiniz.

    Aşağıdaki örnek, Microsoft Entra kullanıcı adı ve parola kimlik bilgilerini kullanarak verileri dışarı aktarır. Örnek, Azure sunucusu aadserver.database.windows.net'deki veritabanı testdb'den tablo bcptest'ı dışarı aktarır ve verileri c:\last\data1.datdosyasında depolar.

    bcp bcptest out "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
    

    Aşağıdaki örnek, bir Microsoft Entra kullanıcısının kimlik bilgilerini kullanarak verileri içeri aktarır. Microsoft Entra kullanıcı adı ve parolası kullanılarak, Azure sunucusu aadserver.database.windows.net üzerindeki veritabanı testdb'ye, dosya c:\last\data1.dat'dan tablo bcptest'e veri aktarılır.

    bcp bcptest in "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
    
  • Microsoft Entra tümleşik

    Microsoft Entra tümleşik kimlik doğrulaması için kullanıcı adı veya parola olmadan -G seçeneğini belirtin. Bu yapılandırma, geçerli Windows kullanıcı hesabının (bcp komutunun altında çalıştığı hesap) Microsoft Entra Id ile federasyona eklenmesini gerektirir:

    Aşağıdaki örnek, Microsoft Entra tümleşik kimlik doğrulamasını kullanarak verileri dışarı aktarır. Örnek, aadserver.database.windows.net mantıksal sunucusundaki testdb veritabanından bcptest tablosunu dışa aktarır ve Microsoft Entra ID ile birleştirilmiş Windows kimlik bilgilerini kullanarak verileri c:\last\data2.datdosyasında depolar.

    bcp bcptest out "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c
    

    Aşağıdaki örnek, Microsoft Entra tümleşik kimlik doğrulamasını kullanarak verileri içeri aktarır. Örnek, Microsoft Entra ID ile birleştirilmiş Windows kimlik bilgilerini kullanarak dosya tablosu c:\last\data2.dat'dan, mantıksal sunucu aadserver.database.windows.net'teki veritabanı testdb'de bulunan tablo bcptest'e veri aktarır.

    bcp bcptest in "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c
    
  • Microsoft Entra Yönetilen Hizmet Kimliği

    Önemli

    bcp sürücüyle sıkı bir şekilde ilişkilendirilir. Hem bcp hem de DSN'nin oluşturulduğu sürücünün ana sürümleri aynı olmalıdır. Sürümünüzü öğrenmek için bcp -vyürütün.

    Windows'ta Yönetilen Hizmet Kimliği kullanarak bcp aracılığıyla veri dışarı aktarmak için DSN'nin yapılandırılması gerekir.

    Windows çalıştıran bir makinede DSN yapılandırmak için:

    1. Klavyenizde Windows tuşuna basın
    2. ODBC yazın ve ODBC Veri Kaynağı Yöneticisi uygun sürümünü seçin
    3. Kullanıcı DSN veya Sistem DSN sekmesini seçin
    4. Ekle'yi seçin ve istemleri izleyin
    5. Kimlik doğrulama türü istendiğinde Azure Yönetilen Hizmet Kimliği kimlik doğrulaması seçin.
    6. Kullanıcı Tarafından Atanan Yönetilen Kimliğiniz varsa kimlik doğrulaması sekmesinin alt kısmındaki Oturum Açma Kimliği kutusuna kimliğin Object (principal) ID yapıştırın
    7. DSN'nizi yapılandırmak için istemleri takip etmeye devam edin

    Ekran görüntüleri de dahil olmak üzere tam bir izlenecek yol için bkz. Kullanıcı arabiriminde DSN oluşturma ve düzenleme.

    DSN yapılandırıldıktan sonra bcp, -S için geçirilen değerin bir DSN olduğunu belirtmek üzere -D bayrağı kullanılarak çağrılabilir.

    bcp bcptest out "c:\last\data1.dat" -c -D -S myDSN -d testdb
    

  • Microsoft Entra ID erişim belirteci

    bcp (17.8 ve üzeri sürüm kullanıcıları) aynı zamanda belirteçle kimlik doğrulaması yapabilir. Aşağıdaki örneklerde, bir erişim belirteci almak için Linux PowerShell kullanılır.

    Bu örnek, bir erişim belirtecini alır ve sistem tarafından atanan yönetilen kimliği kullanarak verileri dışarı aktarmak için bir dosyaya yerleştirir.

    Connect-AzAccount -Identity
    $access_token | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile
    bcp bcptest out data2.dat -S aadserver.database.windows.net -d testdb -G -P /tmp/tokenFile -c
    

    Bu örnek, erişim belirtecini almak ve belirteç dosyasına yerleştirmek için Client IDConnect-AzAccount'nin -AccountId parametresine geçirir. Belirteç daha sonra belirtilen Kullanıcı Tarafından Atanan Yönetilen Kimlik kullanılarak verileri dışarı aktarmak için kullanılır.

    Connect-AzAccount -Identity -AccountId 'client_id_of_user_assigned_managed_identity'
    $access_token | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile
    bcp bcptest out data2.dat -S aadserver.database.windows.net -d testdb -G -P /tmp/tokenFile -c
    
  • Microsoft Entra etkileşimli

    Tüm Azure SQL ve SQL Server 2022+ için kullanılabilen Microsoft Entra etkileşimli kimlik doğrulaması, kimlik doğrulaması için etkileşimli bir iletişim kutusu kullanmanıza olanak tanır ve bu da çok faktörlü kimlik doğrulamasını destekler.

    Microsoft Entra etkileşimli kimlik doğrulaması için bcpsürüm 15.0.1000.34 veya üzerinin yanı sıra ODBC sürüm 17.2 veya üzerigerekir.

    Etkileşimli kimlik doğrulamasını etkinleştirmek için yalnızca kullanıcı adı (-U) içeren ve parola içermeyen -G seçeneğini belirtin.

    Aşağıdaki örnek, Microsoft Entra hesabının kullanıcı adını belirtmeyi içeren Microsoft Entra etkileşimli kimlik doğrulamasını kullanarak verileri dışarı aktarır.

    Etkileşimli mod için el ile parola girilmesi gerekir veya çok faktörlü kimlik doğrulaması etkinleştirilmiş hesaplar için yapılandırılan MFA kimlik doğrulama yönteminizi tamamlayın.

    bcp bcptest out "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com
    

    Federasyon etki alanından bir Windows hesabı olan bir Microsoft Entra kullanıcısı kullanıyorsanız, komut satırına girilen kullanıcı adı etki alanını içermelidir (örneğin, joe@contoso.com):

    bcp bcptest out "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U joe@contoso.com
    

    Konuk kullanıcılar belirli bir Microsoft Entra kiracısında bulunuyorsa ve bcp komutunu yürütmek için veritabanı izinlerine sahip SQL Veritabanı'nda bulunan bir grubun parçasıysa, konuk kullanıcı diğer adları kullanılır (örneğin, keith0@adventure-works.com).

-h "ipuçları [, ... n]"

Verilerin bir tabloya veya görünüme toplu içeri aktarılması sırasında kullanılacak ipucunu veya ipuçlarını belirtir.

  • ORDER (sütun [ASC | DESC] [, ...n])

    Veri dosyasındaki verilerin sıralama düzeni. İçeri aktarılan veriler varsa tablodaki kümelenmiş dizine göre sıralanırsa toplu içeri aktarma performansı iyileştirilir. Veri dosyası, kümelenmiş dizin anahtarının sırası dışında farklı bir düzende sıralanmışsa veya tabloda kümelenmiş dizin yoksa ORDER yan tümcesi yoksayılır. Sağlanan sütun adları, hedef tabloda geçerli sütun adları olmalıdır. Varsayılan olarak, bcp veri dosyasının sıralı olmadığını varsayar. İyileştirilmiş toplu içeri aktarma için SQL Server, içeri aktarılan verilerin sıralandığını da doğrular.

  • ROWS_PER_BATCH = bb

    Küme başına veri satırlarının sayısı (bb). -b belirtilmediğinde kullanılır ve veri dosyasının tamamı tek bir işlem olarak sunucuya gönderilir. Sunucu, bbdeğerine göre toplu yüklemeyi iyileştirir. Varsayılan olarak ROWS_PER_BATCH bilinmemektedir.

  • KILOBYTES_PER_BATCH = cc

    Toplu iş başına yaklaşık kilobayt veri sayısı (cc). Varsayılan olarak, KILOBYTES_PER_BATCH bilinmiyor.

  • TABLOCK

    Toplu yükleme işlemi süresi boyunca tablo düzeyinde toplu güncelleştirme kilidinin alındığını belirtir; aksi takdirde, satır düzeyi kilit alınır. Toplu kopyalama işlemi süresi boyunca bir kilit tutmak tablodaki kilit çekişmesini azalttığı için bu ipucu performansı önemli ölçüde artırır. Tabloda dizin yoksa ve TABLOCK belirtildiyse, bir tablo birden çok istemciden eşzamanlı olarak yüklenebilir. Varsayılan olarak, toplu yükleme sırasında tablo kilidi davranışı tablo kilidi seçeneğitarafından belirlenir.

    Not

    Hedef tablo kümelenmiş columnstore diziniyse, her eşzamanlı iş parçacığına dizin içinde ayrı bir satır grubu atandığından ve bu gruba veri yüklendiğinden, birden çok eşzamanlı istemci tarafından yükleme yapılırken TABLOCK ipucu gerekli değildir. Ayrıntılar için columnstore dizini kavramsal makalelerine bakın,

  • KISITLAMALARI_KONTROL_ET

    Toplu içeri aktarma işlemi sırasında hedef tablo veya görünümdeki tüm kısıtlamaların denetlenebilmesi gerektiğini belirtir. CHECK_CONSTRAINTS ipucu olmadan, tüm CHECK ve FOREIGN KEY kısıtlamaları yoksayılır ve işlemden sonra tablodaki kısıtlama güvenilir değil olarak işaretlenir.

    Not

    UNIQUE, PRIMARY KEY ve NOT NULL kısıtlamaları her zaman uygulanır.

    Bir noktada tablonun tamamında kısıtlamaları denetlemeniz gerekir. Tablo, toplu içeri aktarma işleminden önce boş değilse, kısıtlamayı yeniden doğrulama maliyeti, artımlı verilere CHECK kısıtlamaları uygulama maliyetini aşabilir. Bu nedenle, normalde artımlı toplu içeri aktarma sırasında kısıtlama denetimini etkinleştirmenizi öneririz.

    Giriş verilerinin kısıtlamaları ihlal eden satırlar içermesi durumunda kısıtlamaların devre dışı bırakılmasını isteyebileceğiniz bir durumdur (varsayılan davranış). CHECK kısıtlamaları devre dışı bırakıldıktan sonra verileri içeri aktarabilir ve geçerli olmayan verileri kaldırmak için Transact-SQL deyimlerini kullanabilirsiniz.

    Not

    bcp artık veri dosyasındaki geçersiz verilerde yürütülürlerse betiklerin başarısız olmasına neden olabilecek veri doğrulama ve veri denetimlerini zorunlu tutuyor.

    Not

    -m max_errors ayarı kısıtlama denetimi için geçerli değildir.

  • FIRE_TRIGGERS

    bağımsız değişkeninde ile belirtildiğinde, hedef tabloda tanımlanan tüm ekleme tetikleyicileri toplu kopyalama işlemi sırasında çalıştırılır. FIRE_TRIGGERS belirtilmezse, hiçbir ekleme tetikleyicisi çalışmaz. out, queryoutve format bağımsız değişkenleri için FIRE_TRIGGERS kuralı yoksayılır.

-i input_file

Etkileşimli mod (-n, -c, -wveya -N belirtilmemiş) kullanılarak toplu kopyalama gerçekleştirilirken her veri alanı için komut istemi sorularının yanıtlarını içeren yanıt dosyasının adını belirtir.

input_file kısa çizgi (-) veya eğik çizgi (/) ile başlıyorsa, -i ile input_file değeri arasında boşluk eklemeyin.

-k

Eklenen sütunlar için varsayılan değerler yerine, işlem sırasında boş sütunların null değer tutması gerektiğini belirtir. Daha fazla bilgi için bkz. Toplu içeri aktarma sırasında null değerleri veya varsayılan değerleri tutma (SQL Server).

-K application_intent

Sunucuya bağlanırken uygulama iş yükü türünü bildirir. Mümkün olan tek değer ReadOnly. -K belirtilmezse, bcp yardımcı programı, Always On kullanılabilirlik grubu içindeki ikincil replika ile bağlantı kurma yeteneğini desteklemez. Daha fazla bilgi için bkz. Always On kullanılabilirlik grubunun ikincil çoğaltmasına salt okunur iş yükünü boşaltma.

-l oturum_açma_zaman_aşımı

Oturum açma zaman aşımını belirtir. -l seçeneği, bir sunucuya bağlanmaya çalıştığınızda SQL Server'da oturum açma işleminin zaman aşımına uğramadan önce geçmesi gereken saniye sayısını belirtir. Varsayılan oturum açma zaman aşımı 15 saniyedir. Oturum açma zaman aşımı 0 ile 65534 arasında bir sayı olmalıdır. Sağlanan değer sayısal değilse veya bu aralığa girmiyorsa bcp bir hata iletisi oluşturur. 0 değeri sonsuz bir zaman aşımı belirtir.

-L son_satır

Bir tablodan dışarı aktarılacak veya veri dosyasından içeri aktarılacak son satırın sayısını belirtir. Bu parametre, (>) 0'dan büyük, ancak (<) 'den küçük veya (=) son satırın sayısına eşit bir değer gerektirir. Bu parametre olmadığında, varsayılan değer dosyanın son satırıdır.

last_row değeri 2^63-1'e kadar olan pozitif bir tamsayı olabilir.

-m max_errors

bcp işlemi iptal edilmeden önce oluşabilecek en fazla söz dizimi hatası sayısını belirtir. Söz dizimi hatası, hedef veri türüne veri dönüştürme hatası anlamına gelir. max_errors toplamı, kısıtlama ihlalleri gibi yalnızca sunucuda algılanabilir hataları dışlar.

Bir satır, bcp aracı tarafından kopyalanamazsa, yoksayılır ve bir hata olarak sayılır. Bu seçenek dahil değilse, varsayılan değer 10'dur.

Not

seçeneği, para dönüştürmek veya bigint veri türlerini için de geçerli değildir.

-n

Verilerin yerel (veritabanı) veri türlerini kullanarak toplu kopyalama işlemini gerçekleştirir. Bu seçenek her alanı sormaz; yerel değerleri kullanır.

Daha fazla bilgi için bkz. Verileri içeri veya dışarı aktarmak için yerel biçimi kullanma (SQL Server).

-N

Toplu kopyalama işlemini, özel olmayan veriler için verilerin yerel (veritabanı) veri türlerini ve karakter verileri için Unicode karakterlerini kullanarak gerçekleştirir. Bu seçenek, -w seçeneğine daha yüksek bir performans alternatifi sunar ve veri dosyası kullanarak bir SQL Server örneğinden diğerine veri aktarmak için tasarlanmıştır. Her alanı sormaz. ANSI genişletilmiş karakterleri içeren verileri aktarırken ve yerel modun performansından yararlanmak istediğinizde bu seçeneği kullanın.

Daha fazla bilgi için bkz. Verileri İçeri veya Dışarı Aktarmak için Unicode Yerel Biçimini Kullanma (SQL Server).

-Nile bcp kullanarak verileri dışarı ve sonra da aynı tablo şemasına aktarırsanız, sabit uzunlukta, Unicode olmayan bir karakter sütunu varsa (örneğin, char(10)) kesme uyarısı görebilirsiniz.

Uyarı göz ardı edilebilir. Bu uyarıyı çözmenin bir yolu, -Nyerine -n kullanmaktır.

-o çıktı_dosyası

Komut isteminden yeniden yönlendirilen çıkışı alan dosyanın adını belirtir.

output_file kısa çizgi (-) veya eğik çizgi (/) ile başlıyorsa, -o ile output_file değeri arasında boşluk eklemeyin.

-P parolası

Oturum açma kimliğinin parolasını belirtir. Bu seçenek kullanılmazsa, bcp komutu parola ister. Komut isteminin sonunda parola olmadan bu seçenek kullanılıyorsa, bcp varsayılan parolayı (NULL) kullanır.

Önemli

Boş parola kullanmayın. Güçlü bir parola kullanın.

Parolanızı maskeleyebilmek için -U seçeneğiyle birlikte -P seçeneğini belirtmeyin. Bunun yerine, -U seçeneği ve diğer anahtarlarla (-Pbelirtmeyin) bcp belirttikten sonra ENTER tuşuna basın; komut sizden parola ister. Bu yöntem, girildiğinde parolanızın maskelenmiş olmasını sağlar.

parola kısa çizgi (-) veya eğik çizgi (/) ile başlıyorsa, -P ile parola değeri arasına boşluk eklemeyin.

-q

bcp yardımcı programı ile SQL Server örneği arasındaki bağlantıda SET QUOTED_IDENTIFIER ON deyimini yürütür. Boşluk veya tek tırnak işareti içeren bir veritabanı, sahip, tablo veya görünüm adı belirtmek için bu seçeneği kullanın. Üç bölümlü tablonun veya görünüm adının tamamını tırnak işareti ("") içine alın.

Boşluk veya tek tırnak işareti içeren bir veritabanı adı belirtmek için -q seçeneğini kullanmanız gerekir.

-q -dgeçirilen değerlere uygulanmaz.

Daha fazla bilgi için, bu makalenin devamında Açıklamalarbölümüne bakın.

-r satır terimi

Satır sonlandırıcısını belirtir. Varsayılan değer \n (yeni satır karakteri). Varsayılan satır sonlandırıcısını geçersiz kılmak için bu parametreyi kullanın. Daha fazla bilgi için bkz. Alan ve Satır Sonlandırıcıları Belirtme (SQL Server).

satır sonlandırıcısını bir bcp komutunda onaltılık gösteriminde belirtirseniz, değer 0x00olarak kesilir. Örneğin, 0x410041belirtirseniz 0x41 kullanılır.

row_term kısa çizgi (-) veya eğik çizgi (/) ile başlıyorsa, -r ile row_term değeri arasında boşluk eklemeyin.

-R

Para birimi, tarih ve saat verilerinin istemci bilgisayarın yerel ayarı için tanımlanan bölgesel biçim kullanılarak SQL Server'a toplu olarak kopyalandığını belirtir. Varsayılan olarak bölgesel ayarlar dikkate alınmaz.

-S server_name [\instance_name]

Bağlanacak SQL Server örneğini belirtir. Sunucu belirtilmezse, bcp yardımcı programı yerel bilgisayardaki varsayılan SQL Server örneğine bağlanır. Bu seçenek, bir bcp komutu ağdaki uzak bir bilgisayardan veya yerel adlandırılmış bir örnekten çalıştırıldığında gereklidir. Bir sunucudaki varsayılan SQL Server örneğine bağlanmak için yalnızca server_namebelirtin. SQL Server'ın adlandırılmış bir örneğine bağlanmak için server_name**\**instance_namebelirtin.

-t field_term

Alan sonlandırıcısını belirtir. Varsayılan değer \t (sekme karakteri) değeridir. Varsayılan alan sonlandırıcısını geçersiz kılmak için bu parametreyi kullanın. Daha fazla bilgi için bkz. Alan ve Satır Sonlandırıcıları Belirtme (SQL Server).

bcp komutunda alan sonlandırıcısını onaltılık gösterimle belirtirseniz, değer 0x00'de kesilir. Örneğin, 0x410041belirtirseniz 0x41 kullanılır.

field_term kısa çizgi (-) veya eğik çizgi (/) ile başlıyorsa, -t ile field_term değeri arasında boşluk eklemeyin.

-T

bcp yardımcı programının tümleşik güvenlik kullanarak güvenilir bir bağlantıyla SQL Server'a bağlandığını belirtir. Ağ kullanıcısı, login_idve parola güvenlik kimlik bilgileri gerekli değildir. -T belirtilmezse, başarıyla bağlanmak için -U ve -P belirtmeniz gerekir.

Önemli

bcp yardımcı programı entegre güvenlik kullanarak güvenilir bir bağlantıyla SQL Server'a bağlanırken, kullanıcı adı ve parola kombinasyonu yerine -T seçeneğini (güvenilen bağlantı) kullanın. bcp yardımcı programı SQL Veritabanı'na veya Azure Synapse Analytics'e bağlanırken Windows kimlik doğrulaması veya Microsoft Entra kimlik doğrulaması desteklenmez. -U ve -P seçeneklerini kullanın.

-U login_id

SQL Server'a bağlanmak için kullanılan oturum açma kimliğini belirtir.

-v

bcp yardımcı program sürüm numarasını ve telif hakkını bildirir.

-V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160)

SQL Server'ın önceki bir sürümündeki veri türlerini kullanarak toplu kopyalama işlemini gerçekleştirir. Bu seçenek her alanı sormaz; varsayılan değerleri kullanır.

  • 80 = SQL Server 2000 (8.x)
  • 90 = SQL Server 2005 (9.x)
  • 100 = SQL Server 2008 (10.0.x) ve SQL Server 2008 R2 (10.50.x)
  • 110 = SQL Server 2012 (11.x)
  • 120 = SQL Server 2014 (12.x)
  • 130 = SQL Server 2016 (13.x)
  • 140 = SQL Server 2017 (14.x)
  • 150 = SQL Server 2019 (15.x)
  • 160 = SQL Server 2022 (16.x)

Örneğin, SQL Server 2000 (8.x) tarafından desteklenmeyen ancak SQL Server'ın sonraki sürümlerinde kullanıma sunulan türler için veri oluşturmak için -V80 seçeneğini kullanın.

Daha fazla bilgi için bkz. SQL Server'ın önceki sürümlerinden yerel ve karakter biçimi verilerini içeri aktarma.

-w

Unicode karakterleri kullanarak toplu kopyalama işlemini gerçekleştirir. Bu seçenek her bir alan için onay istemez; depolama türü olarak nchar kullanır, ön ek yoktur, alan ayırıcı olarak \t (sekme karakteri) ve satır sonlandırıcı olarak \n (yeni satır karakteri) kullanır. -w -cile uyumlu değildir.

Daha fazla bilgi için bkz. Verileri içeri veya dışarı aktarmak için unicode karakter biçimini kullanma (SQL Server).

-x

Bu seçenek format ve -fformat_file seçenekleriyle birlikte kullanılır ve varsayılan XML olmayan biçim dosyası yerine XML tabanlı bir biçim dosyası oluşturur. verileri içeri veya dışarı aktarırken -x çalışmaz. hem format hem de -fformat_fileolmadan kullanıldığında bir hata oluşturur.

Açıklamalar

  • bcp 13.0 istemcisi, Microsoft SQL Server 2019 (15.x) araçlarını yüklediğinizde yüklenir. SQL Server'ın birden çok sürümü için araçlar yüklüyse, PATH ortam değişkeninin değerlerinin sırasına bağlı olarak, bcp 13.0 istemcisi yerine önceki bcp istemcisini kullanıyor olabilirsiniz. Bu ortam değişkeni, Yürütülebilir dosyaları aramak için Windows tarafından kullanılan dizin kümesini tanımlar. Hangi sürümü kullandığınızı bulmak için Windows Komut İstemi'nde bcp -v komutunu çalıştırın. PATH ortam değişkeninde komut yolunu ayarlama hakkında bilgi için Windows Yardımı'nda Ortam Değişkenleri veya Ortam Değişkenleri'ni arayın.

    bcp yardımcı programının en yeni sürümünün çalıştığından emin olmak için, bcp yardımcı programının eski sürümlerini kaldırmanız gerekir.

    bcp yardımcı programının tüm sürümlerinin nereye yüklendiğini belirlemek için komut istemine yazın:

    where bcp.exe
    
  • bcp yardımcı programı, Microsoft SQL Server 2016 Özellik Paketi'ndan ayrı olarak da indirilebilir. ENU\x64\MsSqlCmdLnUtils.msi veya ENU\x86\MsSqlCmdLnUtils.msiseçin.

  • XML biçim dosyaları yalnızca SQL Server araçları SQL Server Yerel İstemcisi ile birlikte yüklendiğinde desteklenir.

  • bcp yardımcı programının nerede bulunacağı veya nasıl çalıştırıldığı ve komut istemi yardımcı programları söz dizimi kuralları hakkında bilgi için bkz.SQL Komut İstemi Yardımcı Programları (Veritabanı Altyapısı) .

  • Verileri toplu içeri veya dışarı aktarma işlemleri için hazırlama hakkında bilgi için bkz. Verileri toplu dışarı veya içeri aktarma için hazırlama.

  • Toplu içeri aktarma tarafından gerçekleştirilen satır ekleme işlemlerinin işlem günlüğüne ne zaman kaydedildiği hakkında bilgi için, toplu içeri aktarma işlemlerinde minimum günlük kaydının önkoşulları için 'a bakın.

  • Ekstra özel karakterler kullanma

    <, >, |, &ve ^ karakterleri özel komut kabuğu karakterleridir ve bunların önünde kaçış karakteri (^) bulunmalıdır, veya string içinde kullanıldığında tırnak içine alınmalıdır (örneğin, "StringContaining&Symbol"). Özel karakterlerden birini içeren bir dizeyi içine almak için tırnak işaretleri kullanırsanız, tırnak işaretleri ortam değişkeni değerinin bir parçası olarak ayarlanır.

Yerel veri dosyası desteği

SQL Server'da bcp yardımcı programı, SQL Server 2000 (8.x) ve sonraki sürümlerle başlayan SQL Server sürümleriyle uyumlu yerel veri dosyalarını destekler.

Hesaplanan sütunlar ve zaman damgası sütunları

Hesaplanan veya zaman damgası sütunları için aktarılmakta olan veri dosyasındaki değerler göz ardı edilir ve SQL Server değerleri otomatik olarak atar. Veri dosyası tablodaki hesaplanan veya zaman damgası sütunları için değer içermiyorsa, verileri içeri aktarırken tablodaki hesaplanan veya zaman damgası sütunlarının atlanması gerektiğini belirtmek için bir biçim dosyası kullanın; SQL Server, sütun için değerleri otomatik olarak atar.

Hesaplanan ve zaman damgası sütunları, SQL Server'dan veri dosyasına olağan şekilde toplu olarak kopyalanır.

Boşluk veya tırnak işareti içeren tanımlayıcıları belirtme

SQL Server tanımlayıcıları, eklenmiş boşluklar ve tırnak işaretleri gibi karakterler içerebilir. Bu tür tanımlayıcılar aşağıdaki gibi ele alınmalıdır:

  • Komut isteminde boşluk veya tırnak işareti içeren bir tanımlayıcı veya dosya adı belirttiğinizde, tanımlayıcıyı tırnak işaretleri ("") içine alın.

    Örneğin, aşağıdaki bcp out komutu Currency Types.datadlı bir veri dosyası oluşturur:

    bcp AdventureWorks2022.Sales.Currency out "Currency Types.dat" -T -c
    
  • Boşluk veya tırnak işareti içeren bir veritabanı adı belirtmek için -q seçeneğini kullanmanız gerekir.

  • Ekli boşluklar veya tırnak işaretleri içeren sahip, tablo veya görünüm adları için şunları yapabilirsiniz:

    • -q seçeneğini belirtin veya

    • Sahip, tablo veya görünüm adını tırnak işaretlerinin içine köşeli parantez ([]) içine alın.

Veri doğrulama

bcp artık, veri dosyasındaki geçersiz veriler üzerinde çalıştırıldığında betiklerin başarısız olmasına neden olabilecek veri doğrulaması ve veri denetimlerini zorunlu kılıyor. Örneğin bcp şimdi şunları doğrular:

  • Kayan veya gerçek veri türlerinin yerel gösterimleri geçerlidir.

  • Unicode verilerinin bayt uzunluğu çift sayıdır.

SQL Server'ın önceki sürümlerinde toplu olarak içeri aktarılabilen geçersiz veri biçimleri şimdi yüklenemez; ancak önceki sürümlerde istemci geçersiz verilere erişmeye çalışana kadar hata oluşmadı. Eklenen doğrulama, toplu yüklemeden sonra verileri sorgularken sürprizleri en aza indirir.

SQLXML belgelerini toplu dışarı veya içeri aktarma

SQLXML verilerini toplu olarak dışarı veya içeri aktarmak için biçim dosyanızda aşağıdaki veri türlerinden birini kullanın.

Veri tipi Etki
SQLCHAR veya SQLVARYCHAR Veriler, istemci kod sayfasında veya harmanlama tarafından ima edilen kod sayfasında gönderilir. Bu etki, biçim dosyası belirtmeden -c anahtarını belirtmekle aynıdır.
SQLNCHAR veya SQLNVARCHAR Veriler Unicode olarak gönderilir. Bu etki, biçim dosyası belirtmeden -w anahtarını belirtmekle aynıdır.
SQLBINARY veya SQLVARYBIN Veriler dönüştürme olmadan gönderilir.

İzinler

bcp out işlemi, kaynak tabloda SELECT izni gerektirir.

bcp in işlemi en az hedef tabloda SELECT/INSERT izinleri gerektirir. Ayrıca, aşağıdaki koşullardan biri doğruysa ALTER TABLE izni gerekir:

  • Kısıtlamalar var ve CHECK_CONSTRAINTS ipucu belirtilmemiş.

    Not

    Kısıtlamaları devre dışı bırakmak varsayılan davranıştır. Kısıtlamaları açıkça etkinleştirmek için -h seçeneğini CHECK_CONSTRAINTS ipucuyla birlikte kullanın.

  • Tetikleyiciler var ve FIRE_TRIGGER ipucu belirtilmemiş.

    Not

    Varsayılan olarak tetikleyiciler tetiklenmez. Tetikleyicileri açıkça başlatmak için FIRE_TRIGGERS ipucuyla -h seçeneğini kullanın.

  • Kimlik değerlerini bir veri dosyasından içeri aktarmak için -E seçeneğini kullanırsınız.

Not

SQL Server 2005'te (9.x) hedef tablo için ALTER TABLE izninin gerekliliği yeniydi. Bu yeni gereksinim, kullanıcı hesabının hedef tablo için ALTER TABLE izinleri yoksa tetikleyici ve kısıtlama denetimlerini zorlamayan bcp betiklerinin başarısız olmasına neden olabilir.

Karakter modu (-c) ve yerel mod (-n) en iyi yöntemleri

Bu bölümde karakter modu (-c) ve yerel mod (-n) için öneriler vardır.

  • (Yönetici/Kullanıcı) Mümkün olduğunda, ayırıcı sorunu önlemek için yerel biçimi (-n) kullanın. SQL Server kullanarak dışarı ve içeri aktarmak için yerel biçimi kullanın. Veriler SQL Server olmayan bir veritabanına aktarılacaksa, -c veya -w seçeneğini kullanarak VERILERI SQL Server'dan dışarı aktarın.

  • (Yönetici) BCP OUT kullanırken verileri doğrulayın. Örneğin, BCP OUT, BCP IN ve sonra BCP OUT kullandığınızda verilerin düzgün bir şekilde dışarı aktarıldığını ve sonlandırıcı değerlerinin bazı veri değerlerinin parçası olarak kullanılmadığını doğrulayın. Sonlandırıcı değerleri ile veri değerleri arasındaki çakışmaları önlemek için varsayılan sonlandırıcıları (-t ve -r seçenekleri kullanarak) rastgele onaltılık değerlerle geçersiz kılmayı göz önünde bulundurun.

  • (Kullanıcı) Gerçek dize değeriyle çakışma olasılığını en aza indirmek için uzun ve benzersiz bir sonlandırıcı (herhangi bir bayt veya karakter dizisi) kullanın. Bu, -t ve -r seçenekleri kullanılarak yapılabilir.

Örnekler

Bu bölümdeki örnekler SQL Server 2016 (13.x) ve sonraki sürümleri, Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği için WideWorldImporters örnek veritabanını kullanır. WideWorldImporters https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0'den indirilebilir. Örnek veritabanını geri yükleme söz dizimi hakkında bilgi için RESTORE Deyimleri bölümüne bakın.

Örnek test koşulları

Aksi belirtilmediği durumlar dışında, örneklerde Windows Kimlik Doğrulaması kullandığınız ve bcp komutunu çalıştırdığınız sunucu örneğine güvenilir bir bağlantınız olduğu varsayılır. Örneklerin çoğunda D:\BCP adlı bir dizin kullanılır.

Aşağıdaki betik, WideWorldImporters.Warehouse.StockItemTransactions tablosunun boş bir kopyasını oluşturur ve ardından birincil anahtar kısıtlaması ekler. SQL Server Management Studio'da (SSMS) aşağıdaki T-SQL betiğini çalıştırın

USE WideWorldImporters;
GO

SET NOCOUNT ON;

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Warehouse.StockItemTransactions_bcp')
BEGIN
    SELECT * INTO WideWorldImporters.Warehouse.StockItemTransactions_bcp
    FROM WideWorldImporters.Warehouse.StockItemTransactions
    WHERE 1 = 2;

    ALTER TABLE Warehouse.StockItemTransactions_bcp
    ADD CONSTRAINT PK_Warehouse_StockItemTransactions_bcp PRIMARY KEY NONCLUSTERED
    (StockItemTransactionID ASC);
END

StockItemTransactions_bcp tablosunu gerektiği gibi kesebilirsiniz:

TRUNCATE TABLE WideWorldImporters.Warehouse.StockItemTransactions_bcp;

A. bcp yardımcı programı sürümünü tanımlama

Komut istemine aşağıdaki komutu girin:

bcp -v

B. Tablo satırlarını veri dosyasına kopyalama (güvenilir bağlantıyla)

Aşağıdaki örneklerde WideWorldImporters.Warehouse.StockItemTransactions tablosundaki out seçeneği gösterilmektedir.

  • Temel

    Bu örnek, StockItemTransactions_character.bcp adlı bir veri dosyası oluşturur ve karakter biçimi kullanarak tablo verilerini bu dosyaya kopyalar.

    Komut istemine aşağıdaki komutu girin:

    bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -T
    
  • genişletilmiş

    Bu örnek, adlı bir veri dosyası oluşturur ve yerel biçimini kullanarak tablo verilerini bu dosyaya kopyalar. Örnek ayrıca: Söz dizimi hatası sayısı üst sınırını, hata dosyasını ve çıkış dosyasını belirtir.

    Komut istemine aşağıdaki komutu girin:

    bcp WideWorldImporters.Warehouse.StockItemTransactions OUT D:\BCP\StockItemTransactions_native.bcp -m 1 -n -e D:\BCP\Error_out.log -o D:\BCP\Output_out.log -S -T
    

Error_out.log ve Output_out.loggözden geçirin. Error_out.log boş olmalıdır. StockItemTransactions_character.bcp ile StockItemTransactions_native.bcparasındaki dosya boyutlarını karşılaştırın.

C. Tablo satırlarını veri dosyasına kopyalama (karma mod kimlik doğrulaması ile)

Aşağıdaki örnekte, WideWorldImporters.Warehouse.StockItemTransactions tablosundaki out seçeneği gösterilmektedir. Bu örnek, StockItemTransactions_character.bcp adlı bir veri dosyası oluşturur ve karakter biçimi kullanarak tablo verilerini bu dosyaya kopyalar.

Örnekte karma mod kimlik doğrulaması kullandığınız varsayılır ve oturum açma kimliğinizi belirtmek için -U anahtarını kullanmanız gerekir. Ayrıca, yerel bilgisayardaki varsayılan SQL Server örneğine bağlanamıyorsanız sistem adını ve isteğe bağlı olarak bir örnek adını belirtmek için -S anahtarını kullanın.

Komut istemine şu komutu girin: (Sistem sizden parolanızı ister.)

bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -U<login_id> -S<server_name\instance_name>

D. Dosyadan tabloya veri kopyalama

Aşağıdaki örnekler, daha önce oluşturulan dosyaları kullanarak WideWorldImporters.Warehouse.StockItemTransactions_bcp tablosundaki in seçeneğini gösterir.

  • Temel

    Bu örnekte daha önce oluşturulmuş StockItemTransactions_character.bcp veri dosyası kullanılır.

    Komut istemine aşağıdaki komutu girin:

    bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_character.bcp -c -T
    
  • genişletilmiş

    Bu örnekte daha önce oluşturulmuş StockItemTransactions_native.bcp veri dosyası kullanılır. Örnek ayrıca: TABLOCKipucunu kullanın; toplu iş boyutunu, söz dizimi hatalarının en fazla sayısını, hata dosyasını ve çıkış dosyasını belirtir.

    Komut istemine aşağıdaki komutu girin:

    bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_native.bcp -b 5000 -h "TABLOCK" -m 1 -n -e D:\BCP\Error_in.log -o D:\BCP\Output_in.log -S -T
    

    Error_in.log ve Output_in.loggözden geçirin.

E. Belirli bir sütunu veri dosyasına kopyalama

Belirli bir sütunu kopyalamak için queryout seçeneğini kullanabilirsiniz. Aşağıdaki örnek, Warehouse.StockItemTransactions tablosunun yalnızca StockItemTransactionID sütununu bir veri dosyasına kopyalar.

Komut istemine aşağıdaki komutu girin:

bcp "SELECT StockItemTransactionID FROM WideWorldImporters.Warehouse.StockItemTransactions WITH (NOLOCK)" queryout D:\BCP\StockItemTransactionID_c.bcp -c -T

F. Belirli bir satırı veri dosyasına kopyalama

Belirli bir satırı kopyalamak için queryout seçeneğini kullanabilirsiniz. Aşağıdaki örnek, WideWorldImporters.Application.People tablosundan Amy Trefl adlı kişinin satırını Amy_Trefl_c.bcpveri dosyasına kopyalar.

Not

-d anahtarı veritabanını tanımlar.

Komut istemine aşağıdaki komutu girin:

bcp "SELECT * from Application.People WHERE FullName = 'Amy Trefl'" queryout D:\BCP\Amy_Trefl_c.bcp -d WideWorldImporters -c -T

G. Sorgudan veri dosyasına veri kopyalama

Sonuç kümesini bir Transact-SQL deyiminden veri dosyasına kopyalamak için queryout seçeneğini kullanın. Aşağıdaki örnek, adları WideWorldImporters.Application.People tablosundan tam ada göre sıralanmış olarak People.txt veri dosyasına kopyalar.

Not

-t anahtarı virgülle ayrılmış bir dosya oluşturmak için kullanılır.

Komut istemine aşağıdaki komutu girin:

bcp "SELECT FullName, PreferredName FROM WideWorldImporters.Application.People ORDER BY FullName" queryout D:\BCP\People.txt -t, -c -T

H. Biçim dosyaları oluşturma

Aşağıdaki örnek, WideWorldImporters veritabanındaki Warehouse.StockItemTransactions tablosu için üç farklı biçim dosyası oluşturur. Oluşturulan her dosyanın içeriğini gözden geçirin.

Komut isteminde aşağıdaki komutları girin:

REM non-XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_c.fmt -c -T

REM non-XML native format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_n.fmt -n -T

REM XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_c.xml -x -c -T

Dikkat

-x anahtarını kullanmak için bcp 9.0 istemcisi kullanıyor olmanız gerekir. bcp 9.0 istemcisini kullanma hakkında bilgi için bkz. "Açıklamalar."

Daha fazla bilgi için bkz. XML Dışı biçim dosyalarını kullanma (SQL Server) ve XML Biçim Dosyaları (SQL Server).

Ben. bcp ile toplu içeri aktarmak için biçim dosyası kullanma

Verileri SQL Server örneğine aktarırken daha önce oluşturulmuş bir biçim dosyası kullanmak için -f anahtarını in seçeneğiyle kullanın. Örneğin, aşağıdaki komut StockItemTransactions_character.bcpbir veri dosyasının içeriğini önceden oluşturulmuş biçim dosyasını kullanarak StockItemTransactions_c.xmlWarehouse.StockItemTransactions_bcp tablosunun bir kopyasına toplu olarak kopyalar.

Not

-L anahtarı yalnızca ilk 100 kaydı içeri aktarmak için kullanılır.

Komut istemine aşağıdaki komutu girin:

bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp in D:\BCP\StockItemTransactions_character.bcp -L 100 -f D:\BCP\StockItemTransactions_c.xml -T

Not

Biçim dosyaları, veri dosyası alanları tablo sütunlarından farklı olduğunda kullanışlıdır; örneğin, sayı, sıralama veya veri türlerinde. Daha fazla bilgi için bkz. Verileri içeri veya dışarı aktarmak için dosyaları biçimlendirme (SQL Server).

J. Kod sayfası belirtme

Aşağıdaki kısmi kod örneği, bcp içeri aktarma işlemini, 65001 kod sayfası belirtilerek gösterir.

bcp MyTable in "D:\data.csv" -T -c -C 65001 -t , ...

K. Özel alan ve satır sonlandırıcıları kullanan örnek çıktı dosyası

Bu örnekte, özel alan ve satır sonlandırıcıları kullanılarak bcp tarafından oluşturulan iki örnek dosya gösterilmektedir.

  1. tempdb veritabanında ID ve Nameolmak üzere iki sütun içeren bir tablo dbo.T1 oluşturun.

    USE tempdb;
    GO
    
    CREATE TABLE dbo.T1 (ID INT, [Name] NVARCHAR(20));
    GO
    
    INSERT INTO dbo.T1 VALUES (1, N'Natalia');
    INSERT INTO dbo.T1 VALUES (2, N'Mark');
    INSERT INTO dbo.T1 VALUES (3, N'Randolph');
    GO
    
  2. Özel bir alan sonlandırıcı kullanarak dbo.T1örnek tablodan bir çıkış dosyası oluşturun.

    Bu örnekte, sunucu adı MYSERVERve özel alan sonlandırıcısı -t ,tarafından belirtilir.

    bcp dbo.T1 out T1.txt -T -S MYSERVER -d tempdb -w -t ,
    

    Sonuç kümesi aşağıdadır.

    1,Natalia
    2,Mark
    3,Randolph
    
  3. Özel alan sonlandırıcısı ve özel satır sonlandırıcı kullanarak dbo.T1örnek tablodan bir çıkış dosyası oluşturun.

    Bu örnekte sunucu adı MYSERVER, özel alan sonlandırıcısı -t, ' ve özel satır sonlandırıcısı -r :tarafından belirtilir.

    bcp dbo.T1 out T1.txt -T -S MYSERVER -d tempdb -w -t , -r :
    

    Sonuç kümesi aşağıdadır.

    1,Natalia:2,Mark:3,Randolph:
    

    Not

    Satır sonlandırıcısı, son kayda bile her zaman eklenir. Ancak, alan sonlandırıcısı son alana eklenmez.

Ek örnekler

Aşağıdaki makaleler, bcpkullanma örneklerini içerir:

Dikkat edilmesi gerekenler ve sınırlamalar

  • bcp yardımcı programı, hata iletisinin yalnızca 512 baytlık karakterleri göstermesiyle ilgili bir sınırlamaya sahiptir. Hata iletisinin yalnızca ilk 512 bayt değeri görüntülenir.

Yardım alın

SQL belgelerine katkıda bulunma

SQL içeriğini kendiniz düzenleyebildiğinizi biliyor muydunuz? Bunu yaparsanız, belgelerimizin geliştirilmesine yardımcı olmakla kalmaz, aynı zamanda sayfaya katkıda bulunan olarak da kabul edilirsiniz.

Daha fazla bilgi için bkz. SQL Server belgelerine katkıda bulunma