BCP yardımcı programı
bcpYarar toplu kopya veri örneği arasında Microsoft SQL Serverve bir kullanıcı tarafından belirtilen biçim veri dosyasında. bcpHizmet programı, çok sayıda yeni satır içine almak için kullanılabilir SQL Servertabloları veya veri dosyaları veri tabloları dışında verilecek. İle kullanılması dışında queryoutseçeneği, yardımcı program hiçbir bilgi gerektirir Transact-SQL. Bir tabloya veri almak için bu tablo için oluşturulan bir biçim dosyası kullanma veya tablo ve sütunlarını için geçerli olan veri türleri yapısı anlamak gerekir.
İçin kullanılan sözdizimi kuralları bcpsözdizimini görmek, Transact-SQL Sözdizim Kuralları (Transact-SQL).
[!NOT]
Eğer sen kullanma bcpverilerinizi yedeklemek için veri formatı kaydetmek için bir biçim dosyası oluştur. bcpveri dosyalarınızı herhangi bir şema ya da biçim bilgilerini içermez bir tablo ya da görünüm düştü ve biçimi dosyası yoksa, verileri almak mümkün olabilir.
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]
[-e err_file]
[-E]
[-f format_file]
[-F first_row]
[-h"hint [,...n]"]
[-i input_file]
[-k]
[-K application_intent]
[-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 )]
[-w]
[-x]
/?
Bağımsız değişkenler
data_file
Veri dosyasının tam yoludur. Verileri içe aktarılan toplu olduğunda SQL Server, veri dosyası belirtilen tablo veya Görünüm kopyalanacak veriler içerir. Dan verilen toplu veri ne zaman SQL Server, veri dosyasını içeren tablo veya görünümü veri. Yol, 1 ile 255 karakter arasında olabilir. Veri dosyasının en fazla 2 içerebilir63 - 1 satır.database_name
Belirtilen tablo veya Görünüm bulunduğu veritabanı adıdır. Belirtilmezse, kullanıcı için varsayılan veritabanıdır.Veritabanı adı ile de açıkça belirtinKAYMA d-.
indata_file | outdata_file | queryoutdata_file | format nul
Toplu kopyalama yönünü şöyle belirtir:inveritabanı tablo veya görünüm içine daha fazla kopya--dan a eğe.
outbir dosya kopyaları veritabanı tablo veya görünüm. Varolan bir dosya belirtirseniz, dosyanın üzerine yazılır. Ne zaman veri ayıklarken, dikkat bcpnull olarak boş bir dize ve bir boş dizge olarak boş bir dize yardımcı programı temsil eder.
queryoutbir sorgudan kopyalar ve yalnızca belirtilen olduğunda toplu kopyalama verileri sorgudan olmalıdır.
formatbelirlenen seçeneği geçerli bir biçim dosyası oluşturur (-n, -c, -w, ya -N) ve tablo veya Görünüm sınırlayıcıları. Toplu olduğunda veri kopyalama bcpkomut biçim bilgisini etkileşimli olarak tekrar dan kaydeder bir biçimi dosyasına başvurabilirsiniz. formatSeçeneğini gerektirir -fseçeneği; xml biçimi dosyası oluşturmak gerekir Ayrıca -xseçeneği. Daha fazla bilgi için, bkz. (SQL Server) biçimi dosyası oluşturma. Belirtmelisiniz nuldeğeri olarak (format nul).
owner
Sahibi tablo veya Görünüm adıdır. owneroperasyonu gerçekleştiren kullanıcının belirtilen tabloyu veya görünümü sahipse isteğe bağlıdır. Eğer ownerbelirtilen ve operasyonu gerçekleştiren kullanıcının belirtilen tabloyu veya görünümü, kendi değil SQL Serverhata iletisi ve işlemin iptal edilir verir."query"
Olan bir Transact-SQLbir sonuç kümesi döndüren sorgu. Sorgu birden fazla sonuç kümesi döndürür, yalnızca ilk sonuç kümesini veri dosyasına kopyalanır; sonraki sonuç kümeleri yoksayılır. Kullan sorgu çift tırnak ve tek tırnak bir şey sorguda gömülü. queryoutAyrıca ne zaman belirtilmelidir sorgudan veri kopyalama toplu.Bcp deyimini yürütmeden önce saklı yordam başvurulan tüm tablolar var sürece sorgu bir saklı yordam başvurabilir. Örneğin, saklı yordam geçici bir tablo oluşturur, bcpdeyimi başarısız geçici tablo, yalnızca çalışma zamanında ve deyimi yürütme zaman kullanılabildiği için. Bu durumda, saklı yordam sonuçları bir tabloya ekleme düşünün ve daha sonra bcptablodan verileri bir veri dosyasına kopyalamak.
table_name
Hedef tablo adı veri alınırken olduğunu SQL Server(in) ve veri aktarırken kaynak tablo SQL Server(out).view_name
Hedef görünümü veri kopyalarken adıdır SQL Server(in) ve veri kopyalarken kaynak görünümü SQL Server(out). Yalnızca görünümleri olan tüm sütunlar aynı tabloya bakın hedef Gösterim kullanılabilir. Görünümlere veri kopyalama kısıtlamalar hakkında daha fazla bilgi için bkz: Insert (Transact-sql).-apacket_size
Sunucudan sunucuya gönderilen ağ paket başına bayt sayısını belirtir. Bir sunucu yapılandırma seçeneği kullanılarak ayarlanabilir SQL Server Management Studio(ya da sp_configure sistem saklı yordam). Ancak, sunucu yapılandırma seçeneği bireysel olarak bu seçeneği kullanarak kılınabilir. packet_size4096 65535 bayt olabilir; 4096 varsayılandır.Daha yüksek paket boyutu, toplu kopyalama işlemlerinin performansını geliştirebilirsiniz. Büyük paket istendi, ancak verilemez, varsayılan değer kullanılır. Tarafından oluşturulan performans istatistiklerini bcpyarar kullanılan paket boyutunu göster.
-bbatch_size
Alınan veri toplu iş başına satır sayısını belirtir. Her toplu ithal ve önce kaydedilmiş tüm toplu ithalat ayrı bir işlem olarak açmış. Varsayılan olarak, veri dosyasındaki tüm satırlar tek bir toplu içe aktarılır. Satırlar arasında birden çok toplu dağıtmak için bir batch_size, veri dosyasındaki satırların sayısını daha küçük. Herhangi bir toplu işlem başarısız olursa, yalnızca geçerli toplu iş eklemeleri geri alınır. Zaten tamamlanmış hareketler tarafından alınan toplu bir sonraki hatasından etkilenmez.Bu seçenek ile birlikte kullanmayın **-h"**rows_per_batch =bb" seçeneği.
-c
Karakter veri türünü kullanarak işlemi gerçekleştirir. Bu seçenek, her alan için istemez; o uses charolmadan önekleri ve depolama türü olarak \t(sekme karakteri) alan ayırıcısı ve \r\n(yeni satır karakteri) satır Sonlandırıcı olarak. -cile uyumlu -w.Daha fazla bilgi için, bkz. (SQL Server) veri aldığınızda veya için karakter biçimi kullanma.
-C { ACP | OEM | RAW | code_page }
Verilerin kod sayfasının veri dosyasında olduğunu belirtir. code_pageyalnızca veri içeriyorsa, ilgili char, varchar, ya textkarakter 127 veya az 32'den büyük değerler içeren sütunlar.[!NOT]
Her sütun için bir harmanlama adı belirten bir biçim dosyasını öneririz.
Kod sayfası değerini
Açıklama
ACP
ANSIVe Microsoft Windows (ISO 1252).
OEM
İstemci tarafından kullanılan varsayılan kod sayfası. Eğer kullanılan varsayılan kod sayfası bu -Cbelirtilmemiş.
RAW
Bir başka bir kod sayfası dönüştürme gerçekleşir. Dönüştürme oluştuğundan, bu en hızlı seçenektir.
code_page
Belirli bir kod sayfası numarası; Örneğin, 850.
ÖnemliSQL Serverkod sayfası 65001 (utf-8 kodlaması) desteklemez.-ddatabase_name
Bağlanılacak veritabanını belirtir. Varsayılan olarak, bcp.exe kullanıcının varsayılan veritabanına bağlanır. Eğer d database_name ve üç bölüm adı (database_name.schema.table, bcp.exe için ilk parametre olarak geçirilen) belirtilirse, bir hata gerçekleşir çünkü iki kez veritabanı adını belirtemezsiniz.Eğer database_namebaşlayan bir tire (-) veya eğik çizgi (/) ile arasına boşluk eklemeyin d ve veritabanı adı.-eerr_file
Depolamak için kullanılan bir hata dosyası tam yolu satırları belirtir bcpyarar veritabanında dosyadan aktarmak olamaz. Hata iletileri bcpkomut, kullanıcının iş istasyonuna gidin. Bu seçenek kullanılmazsa, bir hata dosyası oluşturulur.Eğer err_filebaşlayan bir tire (-) veya eğik çizgi (/) ile arasında bir boşluk eklemeyin -eve err_filedeğer.
-E
Alınan veri dosyasındaki kimlik değerinin veya değerlerinin kimlik sütunu için kullanılacağını belirtir. Eğer -E, içe aktarılan veri dosyasında bu sütun değerleri dikkate alınmaz, kimliğini değil verilir ve SQL Serverbenzersiz değerler tablo oluşturulurken belirtilen tohum ve artış değerleri temel alarak otomatik olarak atar.Veri dosyası tablo veya Görünüm kimlik sütun değerleri içermiyorsa, bir biçim dosyası kimlik sütun tablo veya görünümü veri alınırken olarak atlanmasını belirtmek için kullanın; SQL Serverotomatik olarak sütun benzersiz değerleri atar. Daha fazla bilgi için, bkz. DBCC CHECKIDENT (Transact-SQL).
-ESeçeneği olan bir özel izin şartı. Daha fazla bilgi için "Uyarılar" konusuna bakın. Bu konudaki.
-fformat_file
Bir biçim dosyasının tam yolunu belirtir. Bu seçenek anlamı içinde aşağıdaki gibi kullanılır ortamına bağlıdır:Eğer -file kullanılan formatseçeneği, belirtilen format_fileiçin belirtilen tabloyu veya görünümü oluşturulur. xml biçimi dosyası oluşturmak için de belirtmek -xseçeneği. Daha fazla bilgi için, bkz. (SQL Server) biçimi dosyası oluşturma.
Eğer ile kullanılan inveya outseçeneği, -fvarolan biçim dosyasını gerektirir.
[!NOT]
İle bir biçim dosyası kullanma inya outseçenek opsiyoneldir. Yokluğunda -f, eğer seçenek -n, -c, -w, ya -Nbelirtilmezse, komut istemleri biçiminde bilgi için ve yanıtları (varsayılan dosya adı Bcp.fmt olan) bir biçim dosyasını kaydetmenizi sağlar.
Eğer format_filebaşlayan bir tire (-) veya eğik çizgi (/) ile arasında bir boşluk eklemeyin -fve format_filedeğer.
-Ffirst_row
Bir tablodan veri dosyasından alabilir veya ilk satır sayısını belirtir. Bu parametre değeri gerektirir (>) 0 ama az (<) veya eşittir (=) için toplam satırları numaralandırmak. Bu parametre yokluğunda, dosyanın ilk satırı için varsayılan değerdir.first_rowpozitif bir tamsayı değeri 2'e kadar olabilir ^ 63-1. -F first_row1 tabanlıdır.
**-h"**hint[ ,... n] "
İpucu ya da bir tablo veya görünümü veri toplu alma sırasında kullanılacak ipuçları belirtir.ORDER**(column[ASC | DESC],...n)**
Veri dosyasındaki verileri sıralama. Alınmakta olan veriler, varsa tablodaki küme dizinine göre sıralanırsa, toplu alma performansı iyileşir. Veri dosyası için farklı bir düzende sıraladıysanız, bu siparişin bir Kümelenmiş dizin anahtarı dışında veya order yan tümcesi tablo kümelenmiş bir dizin varsa, yoksayılır. Sağlanan sütun adlarının hedef tabloda geçerli sütun adları olması gerekir. Varsayılan olarak, bcpveri dosyası sırasız varsayar. Optimize edilmiş toplu ithalat, SQL Serverda içe aktarılan veriler sıralanır doğrular.rows_per_batch **=**bb
Veri toplu iş başına satır sayısı (olarak bb). Ne zaman kullanılan -b, tek bir işlem olarak sunucuya gönderilen tüm veri dosyası sonuçlanan belirtilmemiş. Sunucu toplu yükleme değerine göre en iyi duruma bb. Varsayılan olarak ROWS_PER_BATCH bilinmez.KILOBYTES_PER_BATCH = cc
Toplu iş başına verinin kilobayt olarak miktarını yaklaşık sayısı (olarak cc). Varsayılan olarak KILOBYTES_PER_BATCH bilinmez.TABLOCK
Toplu yükleme işlemi süresince bir toplu güncelleştirme tablo düzeyi kilitleme kazanılır belirtir; Aksi durumda, satır düzeyinde kilit kazanılır. Toplu işlem süresi için bir kilit tutan kilit çakışması masaya azalttığı bu ipucu önemli performansını artırır. Tablo dizin varsa tablo aynı anda birden çok istemci tarafından yüklenen ve TABLOCKbelirtilen. Varsayılan olarak, tablo seçeneği ile kilitleme davranışı belirlenir table lock on bulk load.CHECK_CONSTRAINTS
Hedef tablo veya görünümdeki tüm kısıtlamaların toplu alma işlemi sırasında denetlenmesi gerektiğini belirtir. CHECK_CONSTRAINTS ipucu olmadan herhangi bir check ve FOREIGN key kısıtlamaları yoksayılır ve işlemden sonra Tablo kısıtlaması değil güvenilir olarak işaretlenir.[!NOT]
UNIQUE, PRIMARY KEY ve NOT NULL kısıtlamaları her zaman zorlanır.
Bir noktada, tüm tablo kısıtlamaları denetlemek gerekecektir. Tablo, toplu alma işleminin önce boş kısıtlama revalidating maliyetini artımlı veri check kısıtlamaları uygulama maliyetini aşabilir. Bu nedenle normalde, artımlı toplu alma sırasında denetleme kısıtlaması etkinleştirmenizi öneririz.
Kısıtlamaların devre dışı (varsayılan davranış) bırakmak isteyebileceğiniz bir durum, giriş verilerinin kısıtlamaları ihlal eden satırlar içerdiği durumdur. Engelli check kısıtlamaları ile veri alabilir ve daha sonra Transact-SQLifadeleri geçersiz verileri kaldırmak için.
[!NOT]
bcpartık, veri doğrulaması ve veri dosyasında geçersiz veri üzerinde yürütülen başarısız komut dosyalarının neden veri denetimleri zorlar.
[!NOT]
-m max_errorsGeçiş kısıtlaması denetimi için geçerli değildir.
FIRE_TRIGGERS
İle belirtilen inbağımsız değişkeni, hedef tablo üzerinde tanımlı Tetikleyiciler toplu kopyalama işlemi sırasında çalışır herhangi bir Ekle. Hiçbir ekleme Tetikleyicileri FIRE_TRIGGERS belirtilirse, çalışır. FIRE_TRIGGERS için göz ardı out, queryout, ve formatargümanları.
-iinput_file
Ne zaman bir toplu kopyalama etkileşimli modu kullanılarak gerçekleştiriliyorsa veri alanı için komut istemi soruların yanıtları içeren bir yanıt dosyası adını belirtir (-n, -c, -w, ya -Nbelirtilmemiş).Eğer input_filebaşlayan bir tire (-) veya eğik çizgi (/) ile arasında bir boşluk eklemeyin -ive input_filedeğer.
-k
Boş sütunlar null değeri var herhangi bir varsayılan değerleri eklenen sütunlar için yerine çalışma sırasında bulundurmalısınız belirtir. Daha fazla bilgi için, bkz. (SQL Server) toplu alma işlemi sırasında NULL veya UseDefault değerleri tutmak.-Kapplication_intent
Bir sunucuya bağlanırken uygulama iş yükünü türünü bildirir. Mümkün olan tek değer salt okunur. Eğer -k belirtilmemişse, bcp yardımcı programı değil AlwaysOn kullanılabilirlik grubunda ikincil çoğaltma bağlantısını destekler. Daha fazla bilgi için, bkz. Okunabilir ikincil kopyaları (AlwaysOn kullanılabilirlik grupları).-Llast_row
Veri dosyasından alabilir veya bir tablodaki son satır sayısını belirtir. Bu parametre değeri gerektirir (>) 0 ama az (<) veya (=) için son satır sayısına eşit. Bu parametre yokluğunda, dosyasının son satırı için varsayılan değerdir.last_rowpozitif bir tamsayı değeri 2'e kadar olabilir ^ 63-1.
-mmax_errors
Önce sözdizimi hataları sayısı üst sınırını belirtir bcpişlemi iptal edilir. Sözdizimi hatası, hedef veri türü için veri dönüştürme hatası anlamına gelir. max_errorsToplam yalnızca sunucuda, kısıtlama ihlalleri gibi Algılanan hatalar hariçtir.Tarafından kopyalanamayacak satır bcpyarar göz ardı edilir ve bir hata olarak sayılan. Bu seçenek dahil değilse, varsayılan 10'dur.
[!NOT]
-mSeçeneği de geçerli dönüştürme moneyya bigintveri türlerini.
-n
Yerli (veritabanı) kullanarak toplu işlemi gerçekleştiren veri türleri veri. Bu seçenek, her alan için istemez; Yerel değerleri kullanır.Daha fazla bilgi için, bkz. Yerel biçim aldığınızda veya veri (SQL Server) kullanmak.
-N
Yerli (veritabanı) kullanarak toplu işlemi gerçekleştiren noncharacter veri veri ve Unicode karakterleri karakter verileri için veri türlerini. Bu seçenek için daha yüksek bir performans alternatif sunan -wseçeneği ve bir örneği veri aktarmak için tasarlanmıştır SQL Serverbir veri dosyası kullanarak başka bir. Her alan için sormaz. ANSI genişletilmiş karakterler içeren veri transfer ettiğiniz ve Mod'a performansını yararlanmak istediğinizde, bu seçeneği kullanın.Daha fazla bilgi için, bkz. Unicode yerel biçim aldığınızda veya veri (SQL Server) kullanmak.
Sonra aynı tabloyu şemaya bcp.exe ile kullanarak verileri almak ve vermek, -N, sabit uzunlukta, Unicode olmayan karakter sütunu ise bir kesilme uyarı görebilirsiniz (örneğin, char(10)).
Uyarı yoksayılabilir. Bu uyarı kullanmaktır gidermek için bir yolu -nyerine -N.
-ooutput_file
Komut isteminden çıktı yönlendirildi aldığı bir dosyanın adını belirtir.Eğer output_filebaşlayan bir tire (-) veya eğik çizgi (/) ile arasında bir boşluk eklemeyin -ove output_filedeğer.
-Ppassword
Parolasını belirtir giriş kimliği. Bu seçenek kullanılmazsa, bcpiçin bir parola komut istemleri. Komut istemi parolasız, sonunda bu seçeneği kullanılırsa bcpvarsayılan parolasını (null).Güvenlik Notu Boş parola kullanmayın. Güçlü bir parola kullanın.
Parolanızı maskelemek için değil belirtmek -Pseçeneği ile birlikte -Useçeneği. Bunun yerine belirttikten sonra bcpile birlikte -Useçeneği ve diğer anahtarlar (değil belirtmek -P), enter tuşuna basın ve komut sen-ecek-e sevketmek için parola. Bu yöntem, girildiği zaman şifrenizi maskeli sağlar.
Eğer passwordbaşlayan bir tire (-) veya eğik çizgi (/) ile arasında bir boşluk eklemeyin -Pve passworddeğer.
-q
Arasındaki bağlantının set QUOTED_IDENTIFIERS on deyimini yürütür bcpyardımcı programı ve bir örneği SQL Server. Bir veritabanı, sahibi, tabloyu belirtmek için bu seçeneği kullanın veya boşluk veya tek tırnak işareti içeren adını görüntüleyin. Tüm üç bölüm tablo veya Görünüm adı tırnak içine alın ("").Boşluk veya tek tırnak işareti içeren bir veritabanı adı belirtmek için kullanmanız gereken –qseçeneği.
-qiletilen değerler geçerli değildir -d.
Daha fazla bilgi için bkz: Bu konudaki açıklamalar.
-rrow_term
Satır Sonlandırıcı belirtir. Varsayılan \n(yeni satır karakteri). Varsayılan satır Sonlandırıcı geçersiz kılmak için bu parametreyi kullanın. Daha fazla bilgi için, bkz. Alan ve satır sonlandırıcılar (SQL Server) belirtin.Onaltılık gösterimde bcp.exe komut satır Sonlandırıcı belirtirseniz, değeri 0x00 kesilecek. Örneğin, 0x410041 belirtirseniz, 0x41 kullanılacaktır.
Eğer row_termbaşlayan bir tire (-) veya eğik çizgi (/) ile arasında bir boşluk eklemeyin -rve row_termdeğer.
-R
Para birimi, Tarih ve Saat belirtir verilerdir içine kopyalanan toplu SQL Serveristemci bilgisayarın yerel ayarı için tanımlı bölgesel biçim kullanılarak. Varsayılan bölgesel ayarları dikkate alınmaz.-Sserver_name[ **\instance_name]
Örneğini belirtir SQL ServerBağlanılacak. Hiçbir sunucu belirtilmemişse, bcpyardımcı programı varsayılan örneğine bağlar SQL ServerYerel bilgisayarda. Bu seçenek ne zaman gereklidir a bcpkomutu, uzak bir bilgisayardan çalıştırılır, ağ veya yerel adlandırılmış örneğine. Varsayılan örneğine bağlanmak için SQL Serverbir sunucu üzerinde yalnızca belirttiğiniz server_name. Adlandırılmış bir örneği için bağlanma SQL Server, belirtmek server_name\**instance_name.-tfield_term
Alan Sonlandırıcı belirtir. Varsayılan \t(sekme karakteri). Varsayılan alan Sonlandırıcı geçersiz kılmak için bu parametreyi kullanın. Daha fazla bilgi için, bkz. Alan ve satır sonlandırıcılar (SQL Server) belirtin.Onaltılık gösterimde bcp.exe komutundaki alan Sonlandırıcı belirtirseniz, değeri 0x00 kesilecek. Örneğin, 0x410041 belirtirseniz, 0x41 kullanılacaktır.
Eğer field_termbaşlayan bir tire (-) veya eğik çizgi (/) ile arasında bir boşluk eklemeyin -tve field_termdeğer.
-T
Belirleyen bcpyarar bağlandığı SQL ServerGüvenilen bir bağlantı kullanarak tümleşik güvenlik ile. Ağ kullanıcının güvenlik kimlik bilgilerini login_id, ve passwordzorunlu değildir. Eğer –Tbelirtilmemişse, belirtmeniz gerekiyor –Uve –Pbaşarıyla oturum inç-Ulogin_id
Bağlanmak için kullanılan kimlik oturumu belirtir SQL Server.Güvenlik Notu Ne zaman bcpyarar bağlandığı SQL Servertümleşik güvenlik kullanarak güvenilen bir bağlantı ile kullanmak -Tseçeneği (güvenilir bağlantı) yerine user nameve passwordbirlikte.
-v
Rapor bcpyardımcı programı sürüm numarasını ve telif hakkı.-V (80 | 90 | 100)
Veri türlerinden daha önceki bir sürümünü kullanarak toplu işlemi gerçekleştiren SQL Server. Bu seçenek, her alan için istemez; Varsayılan değerleri kullanır.80 = SQL Server 2000
90 = SQL Server 2005
100 = SQL Server 2008 and SQL Server 2008 R2
Örneğin, veri türleri oluşturmak değil tarafından desteklenen SQL Server 2000, ancak sonraki sürümlerinde tanıtılan SQL Server, kullanın - V80 seçeneği.
Daha fazla bilgi için, bkz. SQL Server'ın önceki sürümlerden native ve karakter biçimi veri alma.
-w
Unicode karakterleri kullanarak toplu kopyalama işlemi gerçekleştirir. Bu seçenek, her alan için istemez; kullandığı ncharhiçbir önekleri depolama türü olarak \t(sekme karakteri) alan ayırıcısı ve \n(yeni satır karakteri) satır Sonlandırıcı olarak. -wile uyumlu -c.Daha fazla bilgi için, bkz. Aldığınızda veya veri (SQL Server) için Unicode karakter biçimi kullanma.
-x
Kullanılan formatve -f format_fileseçenekleri, varsayılan olmayan xml biçimi dosyası yerine biçimli xml tabanlı bir dosya üretir. -xDoes değil iş ne zaman veri verme veya alma. Her ikisi de kullanılması durumunda bir hata üretir formatve -f format_file.
Açıklamalar
bcpNe zaman sen install 11.0 istemci yüklü Microsoft SQL Server 2012Araçlar. Araçlar için hem de yüklüyse, SQL Server 2012ve önceki SQL Server, path ortam değişkeninin değerine bağlı olarak, daha önceki kullanıyor olabilir bcpistemci yerine bcp11.0 istemci. Bu ortam değişkeni yürütülebilir dosyaları aramak için Windows tarafından kullanılan bir dizin kümesi tanımlar. Hangi sürümü kullandığınızdan keşfetmek için çalıştırın bcp /vkomutunu, Windows komut istemi. Komut yolunu path ortam değişkeninde ayarlama hakkında daha fazla bilgi için Windows Yardım'a bakın.
xml biçimi dosyaları, yalnızca desteklenen ne zaman SQL Serveraraçları ile birlikte yüklenen SQL ServerNative Client.
Nerede ve nasıl çalıştırılacağı hakkında bilgi için bcpyarar ve hakkında bkz: komut istemi utilities sözdizimi kuralları, Komut istemi yardımcı programı başvurusu (veritabanı altyapısı).
Toplu için veri hazırlama hakkında bilgi alma veya verme işlemleri, bakın Veri toplu verme veya alma (SQL Server) için hazırlama.
Toplu alma tarafından gerçekleştirilen satır ekleme işlemleri hareket günlüğüne ne zaman oturum hakkında daha fazla bilgi için bkz: Toplu alma Minimal günlüğü için Önkoşullar.
Yerel veri dosyası desteği
De SQL Server 2012, bcpprogramı ile uyumlu Yerel veri dosyalarını destekler SQL Server 2000, SQL Server 2005, SQL Server 2008, ve SQL Server 2008 R2sadece.
Hesaplanan sütunlar ve zaman damgası sütunları
Hesaplanan için içe aktarılan dosya veri değerleri veya timestampsütunları sayılır, ve SQL Serverdeğerleri otomatik olarak atar. Veri dosyası için hesaplanan değerleri içermeyen, ya da timestamptablodaki sütunlar kullanma biçimi dosyası belirtmek için hesaplanan veya timestamptablodaki sütun veri; alırken atlanır SQL Serverotomatik olarak sütun değerleri atar.
Hesaplanan ve timestamptoplu kopyalama sütunları olan SQL Serveriçin bir veri dosyası her zamanki gibi.
Boşluk veya tırnak işaretleri içeren tanımlayıcıları belirtme
SQL Servertanımlayıcılar, katıştırılmış boşluklar ve tırnak işareti gibi karakterler içerebilir. Böyle tanımlayıcıları aşağıdaki gibi tedavi edilmelidir:
Tanımlayıcı veya boşluk veya komut istemine tırnak işareti içeren dosya adı belirtirseniz, tanımlayıcı tırnak içine alın ("").
Örneğin, aşağıdaki bcp outadlı bir veri dosyası komut oluşturur Currency Types.dat:
bcp AdventureWorks2012.Sales.Currency out "Currency Types.dat" -T -c bcp AdventureWorks2012.Sales.Currency out "Currency Types.dat" -T -c
Boşluk veya tırnak işareti içeren bir veritabanı adı belirtmek için kullanmanız gereken -qseçeneği.
Sahibi, tablo veya katıştırılmış boşluklar veya tırnak işaretleri içeren görünüm adları için şunlardan birini yapabilirsiniz:
Belirtmek -qseçeneğini veya
Sahibi, tablo veya Görünüm adı tırnak içinde köşeli ayraçlar ([]) içine alın.
Veri doğrulama
bcpartık, veri doğrulaması ve veri dosyasında geçersiz veri üzerinde yürütülen başarısız komut dosyalarının neden veri denetimleri zorlar. Örneğin, bcpŞimdi doğrular:
Yerel gösterimini floatya realveri türleri geçerli.
Unicode verilerinin sabit bir uzunluğu var.
Formlar olabilir geçersiz veri toplu olarak alınan önceki sürümlerinde SQL ServerŞimdi; yüklemek başarısız olabilir Oysa, bir istemci geçersiz veri erişim girişiminde kadar önceki sürümlerde hatası meydana geldi değil. Eklenen doğrulama sürpriz sonra toplu yükleme verileri sorgularken en aza indirir.
SQLXML Belgelerini Toplu Alma veya Verme
SQLXML verilerini toplu almak veya vermek için, biçim dosyanızda aşağıdaki veri türlerinden birini kullanın.
Veri türü |
Etkisi |
---|---|
SQLCHAR veya SQLVARYCHAR |
İstemci kod sayfasında veya harmanlamanın dolaylı getirdiği kod sayfasında gönderilen veriler). Etkisi olduğunu belirterek aynı -cgeçiş biçimi dosyası belirtmeden. |
SQLNCHAR veya SQLNVARCHAR |
Veriler Unicode olarak gönderilir. Etkisi olduğunu belirterek aynı -wgeçiş biçimi dosyası belirtmeden. |
SQLBINARY veya SQLVARYBIN |
Veriler dönüştürülmeden gönderilir. |
İzinler
A bcp outişlem, kaynak tablo üzerinde select izni gerektirir.
A bcp inişlem minimal hedef tablo select/INSERT izinleri gerektirir. Buna ek olarak, aşağıdakilerden biri doğruysa alter table izni gereklidir:
Mevcut kısıtlamaları 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 kullanın -hseçeneği ile CHECK_CONSTRAINTS ipucu.
Tetikleyiciler mevcut ve FIRE_TRIGGER ipucu belirtilmemiş.
[!NOT]
Varsayılan olarak tetikleyiciler yürütülmez. Tetikleyicilerin açıkça yangın için -hseçeneği ile FIRE_TRIGGERS ipucu.
Kullandığınız -Ebir veri dosyasından kimlik değerlerini almak için seçeneği.
[!NOT]
Hedef Tablo izni alter table gerektiren yeni SQL Server 2005. Bu yeni gereksinimi neden olabilir bcpdeğil uygulamak tetikler ve kısıtlamayı denetler kullanıcı hesabı alter yoksa başarısız komut tablo izinleri için hedef tablo.
Karakter modu (-c) ve yerel mod (-n) için en iyi yöntemler
Bu bölümde öneriler için karakter modu vardır (-c) ve yerel mod (-n).
(Yönetici/kullanıcı) Mümkün olduğunda, özgün biçimini kullanır (-n) ayırıcı sorunu önlemek için. Yerel biçim kullanarak alma ve verme kullanmak SQL Server. Veri verme SQL Serververileri olmayan bir aktarılacaksa - c veya -w seçeneğini kullanarak- SQL Server veritabanı.
(Yönetici) Veri bcp dışında kullanırken doğrulayın. bcp dışarı kullandığınızda, örneğin, bcp ın ve bcp dışarı verileri düzgün verilir ve Sonlandırıcı değerler bazı veri değerinin bir parçası kullanılmayan doğrulayın. (T - ve - r seçenekleri kullanarak) varsayılan sonlandırıcılar geçersiz kılma Sonlandırıcı değerleri ve veri değerleri arasındaki çakışmaları önlemek için rasgele onaltılık değerlerle düşünün lütfen.
(Kullanıcı) Gerçek dize değeri ile bir çatışma olasılığını en aza indirmek için uzun ve benzersiz bir Sonlandırıcı (bayt veya karakter dizisi) kullanın. Bu t - ve - r seçenekleri kullanılarak yapılabilir.
Örnekler
Bu bölüm, aşağıdaki örnekler içerir:
A. Tablo satırları (güvenilir bağlantı ile) veri dosyasına kopyalama
B. Bir veri dosyasına (ile karma modu kimlik doğrulaması) tablo satırlarını kopyalama
C. Bir tablo bir dosyadan veri kopyalama
D. Belirli bir sütunun veri dosyasına kopyalama
E. Belirli bir satır bir veri dosyasına kopyalama
F. Bir veri dosyası bir sorgudan veri kopyalama
G. Olmayan xml biçimi dosyası oluşturma
H. xml biçimi dosyası oluşturma
I. İle Al toplu için bir biçim dosyası kullanmabcp
A.Tablo satırları (güvenilir bağlantı ile) veri dosyasına kopyalama
Aşağıdaki örnekte gösterilmiştir outTarih seçeneği AdventureWorks2012.Sales.Currencytablosu. Bu örnek, adlı bir veri dosyası oluşturur Currency.datve karakter biçimi kullanarak tablo verilerini kopyalar. Windows kimlik doğrulaması kullanıyorsanız ve bağlantısı olan üzerinde çalışan sunucu örneği örnek varsayar bcpkomut.
Komut isteminde, aşağıdaki komutu girin:
bcp AdventureWorks2012.Sales.Currency out Currency.dat -T -c
bcp AdventureWorks2012.Sales.Currency out Currency.dat -T -c
B.Bir veri dosyasına (ile karma modu kimlik doğrulaması) tablo satırlarını kopyalama
Aşağıdaki örnekte gösterilmiştir outTarih seçeneği AdventureWorks2012.Sales.Currencytablosu. Bu örnek, adlı bir veri dosyası oluşturur Currency.datve karakter biçimi kullanarak tablo verilerini kopyalar.
Örnek varsayar karma modu kimlik doğrulaması kullanıyorsanız, you must use -Ugiriş kimliğini belirtmek için geçiş Ayrıca varsayılan örneği için bağlandığınız sürece SQL ServerYerel bilgisayarda -SSistem adı ve isteğe bağlı olarak bir örnek adı belirlemek için anahtarı.
bcp AdventureWorks2012.Sales.Currency out Currency.dat -c -U<login_id> -S<server_name\instance_name>
bcp AdventureWorks2012.Sales.Currency out Currency.dat -c -U<login_id> -S<server_name\instance_name>
Sistem şifrenizi ister.
C.Bir tablo bir dosyadan veri kopyalama
Aşağıdaki örnekte gösterilmiştir inseçeneğini kullanarak önceki örnekte oluşturulmuş dosya (Currency.dat). İlk olarak, ancak, bu örnek boş bir kopyasını oluşturur AdventureWorks2012 Sales.Currencytablo Sales.Currency2, içine hangi veriler kopyalanır. Windows kimlik doğrulaması kullanıyorsanız ve bağlantısı olan üzerinde çalışan sunucu örneği örnek varsayar bcpkomut.
Sorgu Düzenleyicisi'nde boş bir tablo oluşturmak için aşağıdaki komutu girin:
USE AdventureWorks2012;
GO
SELECT * INTO AdventureWorks2012.Sales.Currency2
FROM AdventureWorks2012.Sales.Currency WHERE 1=2;
USE AdventureWorks2012;
GO
SELECT * INTO AdventureWorks2012.Sales.Currency2
FROM AdventureWorks2012.Sales.Currency WHERE 1=2;
Toplu kopyalama için karakter verileri yeni tabloya olan verileri almak için komut isteminde aşağıdaki komutu girin:
bcp AdventureWorks2012.Sales.Currency2 in Currency.dat -T -c
bcp AdventureWorks2012.Sales.Currency2 in Currency.dat -T -c
Komutun başarılı olduğunu doğrulamak için sorgu Düzenleyicisi'nde tablosunun içeriğini görüntülemek ve girmek için:
USE AdventureWorks;
GO
SELECT * FROM Sales.Currency2
USE AdventureWorks;
GO
SELECT * FROM Sales.Currency2
D.Belirli bir sütunun veri dosyasına kopyalama
Belirli bir sütuna kopyalamak için kullanabilirsiniz queryoutseçeneği. Aşağıdaki örnek kopyalar yalnızca Namesütununda Sales.Currencybir veri dosyasına tablo. Windows kimlik doğrulaması kullanıyorsanız ve bağlantısı olan üzerinde çalışan sunucu örneği örnek varsayar bcpkomut.
Windows komut istemine girin:
bcp "SELECT Name FROM AdventureWorks.Sales.Currency" queryout Currency.Name.dat -T -c
bcp "SELECT Name FROM AdventureWorks.Sales.Currency" queryout Currency.Name.dat -T -c
E.Belirli bir satır bir veri dosyasına kopyalama
Belirli bir satır kopyalamak için kullanabilirsiniz queryoutseçeneği. Aşağıdaki örnek adlı kişiyi yalnızca satır kopyalar Jarrod Ranadan AdventureWorks2012.Person.Persontablo veri dosyasına (Jarrod Rana.dat). , Windows kimlik doğrulaması kullanıyorsanız ve bağlantısı olan üzerinde çalışan sunucu örneği örnek varsayar bcpkomut.
Windows komut istemine girin:
bcp "SELECT * FROM AdventureWorks2012.Person.Person WHERE FirstName='Jarrod' AND LastName='Rana' " queryout "Jarrod Rana.dat" -T -c
bcp "SELECT * FROM AdventureWorks2012.Person.Person WHERE FirstName='Jarrod' AND LastName='Rana' " queryout "Jarrod Rana.dat" -T -c
F.Bir veri dosyası bir sorgudan veri kopyalama
Sonuç kümesine kopyalamak için bir Transact-SQLdeyimi kullanmak bir veri dosyasına queryoutseçeneği. Aşağıdaki örnek adları kopyalar AdventureWorks2012.Person.Personiçine Soyadı sonra ilk adı, sipariş tablosu Contacts.txtveri dosyasını. Windows kimlik doğrulaması kullanıyorsanız ve bağlantısı olan üzerinde çalışan sunucu örneği örnek varsayar bcpkomut.
Windows komut istemine girin:
bcp "SELECT FirstName, LastName FROM AdventureWorks2012.Person.Person ORDER BY LastName, Firstname" queryout Contacts.txt -c -T
bcp "SELECT FirstName, LastName FROM AdventureWorks2012.Person.Person ORDER BY LastName, Firstname" queryout Contacts.txt -c -T
G.Olmayan xml biçimi dosyası oluşturma
Aşağıdaki örnek olmayan xml biçimi dosyasını oluşturur Currency.fmt, için Sales.Currencyiçinde masa AdventureWorks2012 veritabanı. Windows kimlik doğrulaması kullanıyorsanız ve bağlantısı olan üzerinde çalışan sunucu örneği örnek varsayar bcpkomut.
Windows komut istemine girin:
bcp AdventureWorks2012.Sales.Currency format nul -T -c -f Currency.fmt
bcp AdventureWorks2012.Sales.Currency format nul -T -c -f Currency.fmt
Daha fazla bilgi için, bkz. Olmayan xml biçimi dosyaları (SQL Server).
H.xml biçimi dosyası oluşturma
Aşağıdaki örnek, adlı bir xml biçimi dosyası oluşturur Currency.xmliçin Sales.Currencyiçinde masa AdventureWorks2012 veritabanı. Windows kimlik doğrulaması kullanıyorsanız ve bağlantısı olan üzerinde çalışan sunucu örneği örnek varsayar bcpkomut.
Windows komut istemine girin:
bcp AdventureWorks2012.Sales.Currency format nul -T -c -x -f Currency.xml
bcp AdventureWorks2012.Sales.Currency format nul -T -c -x -f Currency.xml
[!NOT]
Kullanmak için -xanahtarı gerekir kullandığınız bir bcp9.0 istemci. Nasıl kullanılacağı hakkında bilgi için bcp9.0 istemci, bkz: "Açıklamalar."
Daha fazla bilgi için, bkz. xml biçimi dosyaları (SQL Server).
I.Bcp ile Al toplu için bir biçim dosyası kullanma
Önceden oluşturulmuş biçimi dosyası veri örneği alınırken kullanılacak SQL Server, kullanma -file geçiş inseçeneği. Örneğin, aşağıdaki komut toplu veri dosyasının içeriğini kopyalar Currency.dat, içine bir kopyasını Sales.Currencytablo (Sales.Currency2) önceden oluşturulmuş biçim dosyasını kullanarak (Currency.xml). Windows kimlik doğrulaması kullanıyorsanız ve bağlantısı olan üzerinde çalışan sunucu örneği örnek varsayar bcpkomut.
Windows komut istemine girin:
bcp AdventureWorks2012.Sales.Currency2 in Currency.dat -T -f Currency.xml
bcp AdventureWorks2012.Sales.Currency2 in Currency.dat -T -f Currency.xml
[!NOT]
Biçimi dosyaları veri dosyası alanları tablo sütunlarından farklı olduğunda kullanışlıdır; Örneğin, kendi numarasını, sipariş veya veri türleri. Daha fazla bilgi için, bkz. Biçimi dosyaları (SQL Server) veri verme veya alma için.
Ek Örnekler
Aşağıdaki konular, kullanma örnekleri içerir bcp:
Kimlik değerleri toplu olduğunda veri (SQL Server) alma tutun
(SQL Server) toplu alma işlemi sırasında NULL veya UseDefault değerleri tutmak
(SQL Server) veri aldığınızda veya için karakter biçimi kullanma
Aldığınızda veya veri (SQL Server) için Unicode karakter biçimi kullanma
Unicode yerel biçim aldığınızda veya veri (SQL Server) kullanmak
Ayrıca bkz.
Başvuru
set QUOTED_IDENTIFIER (Transact-sql)
Kavramlar
Veri toplu verme veya alma (SQL Server) için hazırlama
Biçimi dosyaları (SQL Server) veri verme veya alma için