bcp yardımcı programı

Şunlar için geçerlidir:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitik Platform Sistemi (PDW)Microsoft Fabric'te SQL veritabanı

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

Bcp yardımcı programını kullanarak çok sayıda yeni satırı SQL Server tablolarına aktarın veya tabloların dışındaki verileri veri dosyalarına aktarın. 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.

Sisteminizde hangi bcp sürümünün yüklü olduğu, sistem gereksinimleri ve bcp'yi nasıl edinebileceğiniz hakkında daha fazla bilgi için bkz. bcp yardımcı programını indirme ve yükleme.

Note

bcp veri dosyaları herhangi bir şema veya biçim bilgisi içermez. Verileri yedeklemek için bcp kullanırsanız ve daha sonra kaynak tabloyu bırakır veya değiştirirseniz, verileri geri içeri aktarmak için aynı tablo tanımına veya biçim dosyasına ihtiyacınız vardır.

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

bcp'yi kullanma

Örnek komutlar da dahil olmak üzere bcp'yi kullanma hakkında bilgi için bkz. bcp yardımcı programını kullanma.

Linux ve macOS'ta bcp kullanma

macOS ve Linux'a komut satırı araçlarını yükleme hakkında bilgi için bkz. Linux'ta sqlcmd ve bcp SQL Server komut satırı araçlarını yükleme.

Linux ve macOS'ta bcp ile ilgili dikkat edilmesi gerekenler

  • Alan sonlandırıcısı bir sekmedir (\t).

  • Satır sonlandırıcısı yeni bir satırdır (\n).

  • SQL Server'ın SQL Server aktarımları için yerel biçimi (-n) kullanın. Karakter biçimini (-c) yalnızca veriler SQL Server dışı bir sisteme geçtiğinde veya veri dosyasında genişletilmiş karakterler bulunmaması gerektiğinde kullanın. Daha fazla bilgi için bkz. Karakter modu ve yerel mod en iyi yöntemleri.

  • Bir komut satırı bağımsız değişkeninde ters eğik çizgiden (\) alıntı yapmalı veya kaçış işaretinden çıkmalısınız. Örneğin, özel satır sonlandırıcısı olarak yeni bir satır belirtmek için aşağıdaki mekanizmalardan birini kullanın:

    • -r\\n
    • -r"\n"
    • -r'\n'

TDS 8.0 desteği

SQL Server 2025 (17.x), bcp yardımcı programı için TDS 8.0 desteği sunar.

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 Microsoft Entra 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 ]
    [ -u ]
    [ -v ]
    [ -V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170) ]
    [ -w ]
    [ -x ]
    [ -Y [ s | m | o ] ]
    [ -z ]

Komut satırı seçenekleri

Aşağıdaki tabloda, bcp'de kullanılabilen komut satırı seçenekleri ve hangi işletim sistemlerini destekledikleri listelenmiştir.

Komut satırı seçeneği Windows'da desteklenir Linux ve macOS'ta desteklenir
Nesne ve aktarım modu
[database_name.]şema.{table_name | view_name | "query"} Evet Evet
{in (giriş) | out (çıkış)data_file (veri_dosyası) | queryout (sorgu_çıkış)data_file (veri_dosyası) | format (biçim) nul} Evet Evet
-q Evet Evet
Bağlantı ve kimlik doğrulaması
-S [server_name[\instance_name]] Evet Evet
-d database_name Evet Evet
-U login_id Evet Evet
-P parolası Evet Evet
-G Microsoft Entra kimlik doğrulaması Evet Evet
-D Evet Evet
-K application_intent Evet Evet
-l login_timeout Evet Evet
-T Evet Evet
-Y[s| m| o] Evet 1 Evet 1
Veri gösterimi
-c Evet Evet
-C { ACP | OEM | RAW | code_page } Evet Hayı
-n Evet Evet
-N Evet Hayı
-w Evet Evet
-z Hayı Evet 2
Dosyaları biçimlendirme
-f format_file Evet Evet
-x Evet Hayı
Toplu işlem ve performans
-a packet_size Evet Evet
-b batch_size Evet Evet
-h"hint [,... n]" Evet Hayı
-m max_errors Evet Evet
-F first_row Evet Evet
-L last_row Evet Evet
-r row_term Evet Evet
-t field_term Evet Evet
Değer işleme
-k Evet Evet
-E Evet Evet
Dosya G/Ç ve Kayıt
-i input_file Evet Hayı
-o output_file Evet Hayı
-e err_file Evet Evet
Uyumluluk ve sürüm oluşturma
-V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170 ) Evet Hayı
-u Evet 1 Evet 1
Çeşitli seçenekler
-R Evet Evet
-v Evet Evet

1 SQL Server 2025 (17.x) ile birlikte gelen bcp sürüm 18 veya üzerini gerektirir.
2 ODBC 18.6.1.1 ve üzeri sürümler.

Nesne ve aktarım modu

database_name

Belirtilen tablo veya görünümü içeren veritabanının adı. Bu parametreyi belirtmezseniz, kullanıcının varsayılan veritabanı kullanılır.

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

schema

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 belirtmezseniz 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.

table_name

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

view_name

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). Hedef ()in olarak kullanıldığında, görünüm yalnızca tüm sütunları aynı tabloya başvuruyorsa desteklenir. Bu kısıtlama, görünüm kaynak (out ) olarak kullanıldığında geçerli değildir. 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. Ayrıca, bir sorgudan verileri toplu olarak kopyalarken de belirtmelisiniz queryout .

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, bcp ifadesi başarısız olur çünkü geçici tablo, yalnızca çalışma anında kullanılabilir ve ifade yürütme anında mevcut değildir. 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 dosyadaki verileri veritabanı tablosuna veya görünümüne kopyalar. Toplu kopyalamanın yönünü belirtir.

çıkış

Verileri veritabanı tablosundan 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. bcp yardımcı programı verileri ayıkladığında boş bir dizeyi null olarak, null dizeyi de boş dize olarak temsil eder.

data_file

Veri dosyasının tam yolu. VERILERI SQL Server'a toplu olarak aktardığınızda, veri dosyası belirtilen tabloya veya görünüme kopyalanacak verileri içerir. SQL Server'dan verileri toplu olarak dışarı aktardığınızda, 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.

queryout

Sorgudan veri kopyalar ve yalnızca bir sorgudan verileri toplu kopyalarken belirtilmelidir.

format

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; XML biçim dosyası oluşturmak için -x seçeneği de gereklidir. Daha fazla bilgi için bkz. bcp (SQL Server) ile biçim dosyası oluşturma. değer olarak nul belirtmelisiniz (format nul).

-q

SET QUOTED_IDENTIFIER ON yardımcı programı ile SQL Server örneği arasındaki bağlantıda 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ç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 makaledeki Açıklamalar bölümüne bakın.

Bağlantı ve kimlik doğrulaması

-S [server_name[\instance_name]]

Bağlanacak SQL Server örneğinin adını veya kullanıyorsanız -Dbir DSN belirtir.

Bir sunucu belirtmezseniz , bcp yardımcı programı yerel bilgisayardaki varsayılan SQL Server örneğine bağlanır. Ağdaki uzak bir bilgisayardan veya yerel bir adlandırılmış örnekten bcp komutu çalıştırırken bu seçeneğe ihtiyacınız vardır. 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 belirtin <server_name>\<instance_name>.

-d database_name

Bağlanacak veritabanını belirtir. Varsayılan olarak , bcp varsayılan veritabanınıza bağlanır. ve üç parçalı bir ad belirtirseniz -d <database_name> (database_name.schema.table, bcp'ye ilk parametre olarak geçirilir), 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.

-U login_id

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

-P parola

Oturum açma kimliğinin parolasını belirtir. Bu seçeneği kullanmazsanız bcp komutu parola ister. Komut isteminin sonunda parola olmadan bu seçeneği kullanırsanız , bcp varsayılan parolayı ()NULL kullanır.

Important

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

Parolanızı maskeleyebilmek için -P seçeneğiyle birlikte -U seçeneğini belirtmeyin. Bunun yerine, seçeneği ve diğer anahtarlarla birlikte -U belirttikten sonra (belirtmeyin-P), Enter tuşuna basın ve 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.

Linux ve macOS'ta, seçeneği olmadan -G-U kullanıldığında-P, Microsoft Entra erişim belirteci (v17.8 ve sonraki sürümler) içeren bir dosya belirtir. Belirteç dosyası UTF-16LE (BOM yok) biçiminde olmalıdır. Daha fazla bilgi için bkz. bcp'de Microsoft Entra Kimliği ile kimlik doğrulama.

-G

Şunlar için geçerlidir: Azure SQL Veritabanı, Azure SQL Yönetilen Örneği, Microsoft Fabric'teki SQL veritabanı, Azure Synapse Analytics ve SQL Server 2022 (16.x) ve sonraki sürümler.

Bu anahtar, istemci tarafından kullanıcının Microsoft Entra ID ile doğrulandığını belirtmek için kullanılır. -G anahtarı bcp sürüm 14.0.3008.27 veya sonraki sürümlerini 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 Microsoft Fabric'teki SQL veritabanında kimlik doğrulaması.

bcp'de Microsoft Entra kimlik doğrulaması hakkında tüm ayrıntılar için bkz. bcp'de Microsoft Entra Kimliği ile kimlik doğrulaması.

-D

bcp -S seçeneğine geçirilen değerin veri kaynağı adı (DSN) olarak yorumlanmasına neden olur. -D komut satırında herhangi bir yerde görünebilir; -S göre sıralamak önemli değildir.

DSN şu işlemleri yapmak için kullanılabilir:

  • Komut satırlarını basitleştirmek için sürücü seçeneklerini ekleyin.
  • Gibi MultiSubnetFailoverkomut satırından erişilmeyecek sürücü seçeneklerini zorunlu kılma.
  • Hassas kimlik bilgilerinin komut satırı bağımsız değişkenleri olarak bulunmasının önüne geçmeye yardım edin.

Daha fazla bilgi için bkz. sqlcmd ve bcp'de DSN desteği.

-K application_intent (uygulama amacı)

Sunucuya bağlanırken uygulama iş yükü türünü bildirir. Mümkün olan tek değer ReadOnly. Belirtmezseniz, -Kbcp yardımcı programı, Always On kullanılabilirlik grubundaki ikincil çoğaltmaya bağlantıyı 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_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ğladığınız 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.

-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. Eğer -T belirtmezseniz, başarılı bir şekilde bağlanmak için -U ve -P belirtmeniz gerekir.

Important

Yalnızca Windows ile tümleşik güvenilen bağlantıyla SQL Server'a bağlanırken kullanın -T . Azure SQL Veritabanı'na veya Azure Synapse Analytics'e -T bağlanırken (Windows tümleşik kimlik doğrulaması) desteklenmez. Azure hizmetleri veya SQL Server 2022 (16.x) ve sonraki sürümlerde Microsoft Entra kimlik doğrulaması için kullanın -G (bkz. bcp'de Microsoft Entra Kimliği ile kimlik doğrulama).

-Y[s|m|o]

Şunlar için geçerlidir: SQL Server 2025 (17.x) ile birlikte gelen bcp sürüm 18 ve üzeri sürümler.

Bağlantıların ağ üzerinden TLS şifrelemesi kullanıp kullanmadığını belirtir. -Y (için o), Optional, m (için Mandatory, varsayılan) veya s (için Strict) olabilir. Eklemezseniz -Y, -Ym (Mandatory için) varsayılan değer olarak olur.

-u

Şunlar için geçerlidir: SQL Server 2025 (17.x) ile birlikte gelen bcp sürüm 18 ve üzeri sürümler.

Sunucu sertifikasına güven. Bağlantı için şifreleme seçeneğiyle kullanıldığında, otomatik olarak imzalanan bir sunucu sertifikası kullanarak şifrelemeyi etkinleştirir.

Veri gösterimi

-c

bir karakter veri türü kullanarak işlemi gerçekleştirir. Bu seçenek her alanı sormaz. Depolama türü olarak ön ekler olmadan char kullanır ve alan ayırıcı olarak \t (sekme karakteri), satır sonlandırıcısı olarak ise \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).

En iyi yöntemler için bkz. Karakter modu ve yerel mod en iyi yöntemleri.

-C { ACP | OEM | HAM | code_page }

Şunlar için geçerlidir: Yalnızca Windows. Linux ve macOS'ta desteklenmez.

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.

65001 seçeneğinin harmanlama veya 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ı belirtin.

Kod sayfası değeri Description
ACP ANSI/Microsoft Windows (ISO 1252).
OEM İstemci tarafından kullanılan varsayılan kod sayfası. belirtmezseniz -Cbu kod sayfası varsayılandır.
RAW Bir kod sayfasından diğerine dönüştürme gerçekleşmez. Dönüştürme gerçekleşmediğinden bu seçenek en hızlı seçenektir.
<code_page> 850 gibi belirli bir kod sayfası numarası.

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.

-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).

En iyi yöntemler için bkz. Karakter modu ve yerel mod en iyi yöntemleri.

-N

Şunlar için geçerlidir: Yalnızca Windows. Linux ve macOS'ta desteklenmez.

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 için uyarı vermiyor. 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).

ile -N 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ıyı yoksayabilirsiniz. Bu uyarıyı çözmenin bir yolu, -nyerine -N kullanmaktır.

-w

Unicode karakterleri kullanarak toplu kopyalama işlemini gerçekleştirir. Bu seçenek her alanı sormaz. Depolama türü olarak nchar, ön ek olmadan, \t (sekme karakteri) alan ayırıcı olarak ve \n (yeni satır karakteri) satır sonlandırıcı olarak 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).

-z

Şunlar için geçerlidir: bcp (ODBC), yalnızca Linux ve macOS. Windows desteklenmez.

bcp yardımcı programındaki vektör veri türü desteğini etkinleştirir. Bu özellik şu anda varsayılan olarak devre dışıdır. Devre dışı bırakıldığında vektör verileri JSON kayan dizi dizeleri olarak içeri veya dışarı aktarılır. Etkinleştirildiğinde ve SQL Server 2025 (17.x) ve sonraki sürümlerine bağlanırken vektör verileri yerel vektör ikilisinde içeri veya dışarı aktarılır.

Dosyaları biçimlendirme

-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:

  • seçeneğini kullanırsanız -fformat , 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. bcp (SQL Server) ile biçim dosyası oluşturma.

  • -f seçeneğini in veya out ile kullanıyorsanız, mevcut bir biçim dosyası gerektirir.

    Note

    Bir biçim dosyasını in veya out seçeneğiyle kullanmak isteğe bağlıdır. Seçeneğini belirtmezseniz -f ve , -n, -cveya -wbelirtmezseniz-N, komut biçim bilgilerini ister ve yanıtlarınızı bir biçim dosyasına kaydetmenizi sağlar. Varsayılan dosya adıdır 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.

-x

Şunlar için geçerlidir: Yalnızca Windows. Linux ve macOS'ta desteklenmez.

ve format-f seçenekleriyle bu seçeneği kullanın. Varsayılan XML olmayan biçim dosyası yerine XML tabanlı bir biçim dosyası oluşturur. Verileri -x içeri veya dışarı aktarırken bu seçenek çalışmaz. hem format hem de -fformat_fileolmadan kullanıldığında bir hata oluşturur.

Toplu işlem ve performans

-a packet_size

İstemcinin sunucuya gönderdiği ve sunucudan aldığı ağ paketi başına bayt sayısını belirtir. SQL Server Management Studio'yu veya sistem saklı yordamını sp_configure kullanarak bu sunucu yapılandırma seçeneğini ayarlayın. Ancak, bu seçeneği kullanarak sunucu yapılandırma seçeneğini tek tek geçersiz kılabilirsiniz. packet_size 4.096 bayttan 65.535 bayta kadar olabilir. Varsayılan değer: 4096.

Paket boyutunu artırmak toplu kopyalama işlemlerinin performansını artırabilir. Daha büyük bir paket istiyorsanız ancak sunucu bunu veremiyorsa, varsayılan değer kullanılır. bcp yardımcı programının oluşturduğu 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 bcp, veri dosyasındaki tüm satırları tek bir yığın olarak içeri aktarı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. Daha önce kaydedilen işlemlerle içeri aktarılan toplu veriler, daha sonra meydana gelen bir hatadan etkilenmez.

-b ve -h "ROWS_PER_BATCH=<bb>" ipucu birbirini dışlar. -b'yi, bcp'nin toplu işleme işlemlerini açıkça kontrol etmesini istediğinizde kullanın veya verileri tek bir işlem olarak gönderirken sunucu optimizasyonuna ipucu vermek için ROWS_PER_BATCH'yi kullanın.

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

Şunlar için geçerlidir: Yalnızca Windows. Linux ve macOS'ta desteklenmez.

Verilerin 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ı artar. 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ğladığınız 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). belirtmediğinizde -bkullanılır ve bunun sonucunda 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 bilinmiyor.

  • 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ırasında 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ırasında kilit tutmak tablodaki kilit çekişmesini azalttığı için bu ipucu performansı önemli ölçüde artırır. Tabloda dizin yoksa ve TABLOCK belirtilmişse, tabloyu birden çok istemciden eşzamanlı olarak yükleyebilirsiniz. Varsayılan olarak, tablo seçeneği table lock on bulkload kilitleme davranışını belirler. Daha fazla bilgi için bkz. sp_tableoption.

    Note

    Hedef tablo bir kümelenmiş columnstore indeksine sahipse, dizin içinde her eşzamanlı iş parçacığına ayrı bir satır grubu atandığından ve veriler bu gruplara yüklendiğinden, birden fazla eşzamanlı istemci tarafından yükleme yapmak için TABLOCK ipucuna gerek yoktur. Daha fazla bilgi için bkz. Columnstore dizinleri: genel bakış.

  • CHECK_CONSTRAINTS

    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 İpucu olmadan, herhangi bir CHECK ve FOREIGN KEY kısıtlaması yoksayılır ve işlemden sonra tablodaki kısıtlama güvenilmeyen olarak işaretlenir.

    Note

    UNIQUE, PRIMARY KEYve 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ğrulamanın maliyeti artımlı verilere CHECK kısıtlamaları uygulama maliyetini aşabilir. Bu nedenle, genellikle artımlı toplu içeri aktarma sırasında kısıtlama denetimini etkinleştirebilirsiniz.

    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ış). Kısıtlamaları devre dışı bırakarak CHECK verileri içeri aktarabilir ve sonra geçerli olmayan verileri kaldırmak için Transact-SQL deyimlerini kullanabilirsiniz.

    Note

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

  • FIRE_TRIGGERS

    Bu seçeneği bağımsız değişkenindeki belirttiğinizde, hedef tabloda tanımlanan tüm ekleme tetikleyicileri toplu kopyalama işlemi sırasında çalıştırılır. belirtmezseniz FIRE_TRIGGERS, hiçbir ekleme tetikleyicisi çalıştırılamaz. FIRE_TRIGGERS, out, queryoutve format bağımsız değişkenleri için göz ardı edilir.

-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ı, sunucunun yalnızca algılayabileceğiniz sınırlama ihlalleri gibi hataları dışlar.

bcp yardımcı programının kopyalayamadığı bir satır yoksayılır ve tek bir hata olarak sayılır. Bu seçeneği eklemezseniz, varsayılan değer 10'dur.

Note

Para -mveyabigint veri türleri dönüştürülürken bu seçenek geçerli değildir.

-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 ancak toplam satır sayısından küçük (<) veya buna eşit bir değer gerektirir. Bu parametreyi belirtmezseniz, 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ı numaralandırma kullanır.

-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 için (>) 0'dan büyük ancak son satırın sayısından küçük (<) veya buna eşit bir değer gerekir. Bu parametreyi belirtmezseniz, 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.

-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ını (SQL Server) belirtme.

Satır sonlandırıcısını bir bcp komutunda onaltılık gösteriminde belirtirseniz, değer 0x00 olarak kısaltılır. Ö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.

-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ını (SQL Server) belirtme.

bcp komutunda alan sonlandırıcısını onaltılık gösterimle belirtirseniz, değer 0x00 konumunda 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.

Değer işleme

-k

Boş sütunların, sütunlar için varsayılan değerler eklemek yerine işlem sırasında null değer tuttuğunu 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).

-E

İşlemin, kimlik sütunu için içeri aktarılan veri dosyasındaki kimlik değerlerini kullandığını belirtir. Eğer -E belirtmezseniz, SQL Server, içeri aktarılan veri dosyasındaki bu sütun için kimlik değerlerini yoksayar ve tablo oluşturma sırasında belirtilen başlangıç ve artım 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.

Dosya G/Ç (I/O) ve günlüğe kaydetme (loglama)

-i input_file

Şunlar için geçerlidir: Yalnızca Windows. Linux ve macOS'ta desteklenmez.

Yanıt dosyasının adını belirtir. Dosya, etkileşimli modu (-n, -c, -wveya -N belirtilmemiş) kullanarak toplu kopyalama işlemi gerçekleştirdiğinizde her veri alanı için komut istemi sorularının yanıtlarını içerir.

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

-o çıkış_dosyası

Şunlar için geçerlidir: Yalnızca Windows. Linux ve macOS'ta desteklenmez.

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.

-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çeneği kullanmazsanız 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.

Uyumluluk ve sürüm oluşturma

-V { 80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170 }

Şunlar için geçerlidir: Yalnızca Windows. Linux ve macOS'ta desteklenmez.

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)
  • 170 = SQL Server 2025 (17.x)

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

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

Çeşitli seçenekler

-R

bcp yardımcı programının istemci bilgisayarın yerel ayarı için tanımlanan bölgesel biçimi kullanarak para birimi, tarih ve saat verilerini SQL Server'a toplu olarak kopyaladığını belirtir. Varsayılan olarak , bcp bölgesel ayarları yoksayar.

-v

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

Remarks

  • bcp yardımcı programı, SQL Server'ın desteklenen tüm sürümleriyle uyumlu yerel veri dosyalarını destekler.

  • bcp yardımcı programı bir hata iletisinin yalnızca ilk 512 baytını görüntüler.

Permissions

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

Bir bcp in işlemi, hedef tabloda SELECT ve INSERT izinlerine en az düzeyde ihtiyaç duyar. Ayrıca, aşağıdaki koşullardan herhangi biri doğruysa ALTER TABLE izni gerekir:

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

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

  • Tetikleyiciler var ve FIRE_TRIGGERS ipucu belirtilmemiş.

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

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

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. Microsoft Learn belgelerini düzenleme.