Aracılığıyla paylaş


Toplu kopyalama işlemleri gerçekleştirme

The SQL Server toplu kopyalama feature supports the transfer of large amounts of data into or out of a SQL Server tablo or view. Verileri de dışında bir deyim belirterek aktarılabilir.Verileri arasında hareket ettirilebilen SQL Server ve bir ASCII dosyası gibi bir işletim sistemi veri dosyası. Veri dosyası, farklı biçimler olabilir; bu biçimi kopyasında toplu olarak tanımlanan bir biçim dosyası.Isteğe bağlı olarak, verileri program değişkenleri yüklenebilmesi ve olması transfer SQL Server toplu kopyalama işlevleri ve yöntemleri kullanma.

Bu özellik gösteren bir örnek uygulama için bkz: Readme_Bulk Copy Using IRowsetFastLoad (OLE DB).

Bir uygulama toplu kopyalama genellikle aşağıdaki iki yoldan birini kullanır:

  • Bir tablo, görünüm veya sonuç kopyadan toplu küme bir veri dosyasına aynı biçimde tabloyu veya görünümü verilerin nerede saklanacağı bir Transact-SQL deyim.

    Bu bir yerel moddaki bir veri dosyası olarak adlandırılır.

  • toplu kopyalama bir tablo, görünüm veya sonuç kümesi bir tablo veya görünümü dışında bir biçimde verilerin nerede saklanacağı bir veri dosyasına bir Transact-SQL deyim.

    Bu durumda, ayrı bir biçimde bir dosya veri dosyasında depolanan her sütun özelliklerini (veri türü, konum, uzunluk, Sonlandırıcı vb.) tanımlayan oluşturulur.Tüm sütunları karakter biçimine dönüştürülür, sonuç dosyası modu karakter veri dosyası olarak adlandırılır.

  • Bir veri dosyası BULK kopyasından bir tablo veya Görünüm.

    Gerekirse, bir biçim dosyası veri dosyasının yerleşimini belirlemek için kullanılır.

  • Program değişkenleri veri yüklenemedi, tabloya veri alma veya toplu bir satırda bir kerede kopyalamak için Kopyala toplu işlevleri kullanarak görüntüleyin.

Toplu kopyalama işlevleri tarafından kullanılan veri dosyalarını başka bir toplu kopyalama program tarafından oluşturulmuş olması gerekmez.Başka bir sistem veri dosyası oluşturabilir ve biçim dosyası toplu kopyalama tanımlarına göre; bu dosyaları sonra kullanılabilir bir SQL Server verileri almak için toplu kopyalama programı SQL Server. Örneğin, sekmeyle ayrılmış bir dosya içinde bir elektronik tablodaki verileri verme, sekmeyle ayrılmış dosya tanımlayan biçim dosyası oluşturmak ve sonra hızlı bir şekilde verileri almak için toplu kopyalama programı kullanın... SQL Server. Toplu kopyalama tarafından oluşturulan veri dosyalarını da diğer uygulamalara aktarılabilir.Örneğin, toplu kopyalama işlevleri, veri bir tablo veya görünümü bir elektronik tabloya yüklenemedi sekmeyle ayrılmış bir dosyaya dışa aktarmak için kullanabilirsiniz.

Not

Beginning with SQL Server 2005, when you use the bcp utility the server reports an error when numeric data truncation occurs.SQL Server 2000 and earlier releases only returned a warning.Bu uyarıyı dikkate varolan uygulamalar için sorunlarla karşılaşabilirsiniz.Bu sorunları sağlayarak verilerin fazlalıklar atılacak doğru değerler olduğunu veya kullanmaya devam etmeden kaçınılmış SQL Server 2000 sürüm Kullanımıbcp.

Toplu kopyalama işlevleri uygulamaların kodlama programcılar, genel kurallar için iyi bir toplu kopyalama performansını uygulamalısınız.Toplu kopyalama işlemleri için destek hakkında daha fazla bilgi için SQL Server, bkz: Toplu alma ve verme işlemleri toplu hakkında.

Kısıtlamaları ve sınırlamaları

CLR kullanıcı tanımlı türü (UDT), ikili veri olarak bağlanmalıdır.Bile SQLCHAR biçiminde bir dosyayı bir hedef UDT sütunun veri türünü belirtir The BCP yardımcı programı, verileri ikili davran.

küme FMTONLY OFF toplu kopyalama işlemleri ile kullanın.küme FMTONLY OFF, toplu kopyalama işlemi başarısız veya beklenmeyen sonuçlara neden olabilir.

SQL Server Native Client OLE DB Sağlayıcısı

The SQL Server Native istemci OLE DB sağlayıcı implements two methods for performing toplu kopyalama operations with a SQL Server database. Ilk yöntem kullanılarak içerir IRowsetFastLoad kullanarak arabirim bellek tabanlı toplu kopyalama işlemleri; ve ikinci içerirIBCPSession arabirim dosya tabanlı toplu kopyalama işlemleri.

Bellek kullanarak toplu kopyalama işlemleri based...

The SQL Server Native istemci OLE DB sağlayıcı implements the IRowsetFastLoad arabirim to expose support for SQL Server memory-based toplu kopyalama operations. The IRowsetFastLoad arabirim implements the IRowsetFastLoad::yürütme and IRowsetFastLoad::InsertRow methods.

oturum IRowsetFastLoad için etkinleştirme

Tüketici bildirir SQL Server Yerel istemci OLE DB sağlayıcı için ayarlayarak, toplu kopyalama, gereksiniminin SQL Server Yerel istemci OLE DB sağlayıcıya özgü veri kaynak SSPROP_ENABLEFASTLOAD VARIANT_TRUE için özellik. Veri kaynağında özellik ile tüketici oluşturur bir SQL Server Yerel istemci OLE DB sağlayıcı oturum. Yeni oturum tüketici erişim sağlayan IRowsetFastLoad arabirim.

Not

If the IDataInitialize arabirim is used for initializing the data kaynak, then it is necessary to küme the SSPROP_IRowsetFastLoad özellik in the rgPropertySets parameter of the IOpenRowset::OpenRowset yöntem; otherwise, the call to the OpenRowset yöntem will return E_NOINTERFACE.

Toplu kopyalama sınırlar için bir oturum etkinleştirme SQL Server Yerel istemci OLE DB sağlayıcı için arabirimler üzerinde oturum destekler. Toplu kopyalama etkin oturum yalnızca aşağıdaki arabirimler açýklar:

  • IDBSchemaRowset

  • IGetDataSource

  • IOpenRowset

  • ISupportErrorInfo

  • Itransactionjoin

Toplu kopyalama etkin satır kümeleri oluşturmayı devre dışı bırakmak ve SQL Server Standart işleme dönmek için yerel istemci OLE DB sağlayıcı oturum SSPROP_ENABLEFASTLOAD VARIANT_FALSE için sıfırlandı.

IRowsetFastLoad Satır kümeleri

The SQL Server Native istemci OLE DB sağlayıcı toplu kopyalama rowsets are write-only, but they expose interfaces that allow the consumer to determine the structure of a SQL Server tablo. Aşağıdaki arabirimlerden kopya özelliği etkinleştirilmiş bir yığın üzerinde sunulur SQL Server Yerel istemci OLE DB sağlayıcı satır kümesi:

  • IAccessor

  • IColumnsInfo

  • IColumnsRowset

  • IConvertType

  • IRowsetFastLoad

  • IRowsetInfo

  • ISupportErrorInfo

Sağlayıcıya özel özellikler SSPROP_FASTLOADOPTIONS SSPROP_FASTLOADKEEPNULLS ve SSPROP_FASTLOADKEEPIDENTITY davranışlarını denetleyen bir SQL Server Yerel istemci OLE DB sağlayıcı toplu kümesi. The properties are specified in the rgProperties member of an rgPropertySetsIOpenRowset parameter member.

Özellik KIMLIĞI

Açıklama

ssprop_fastloadkeepidentity

Sütun: No

R/W: Okuma/yazma

TYPE: VT_BOOL

Varsayılan: VARIANT_FALSE

Açıklama: Tüketici tarafından sağlanan kimlik değerlerini korur.

variant_false: Kimlik sütun için değerlerSQL Server Tablo tarafından oluşturulur SQL Server. Sütun tarafından yoksayılır için herhangi bir değer bağlı SQL Server Yerel istemci OLE DB sağlayıcı.

variant_true: Tüketici değeri sağlamak için erişimci bağlar.SQL Server kimlik sütun. Kimlik özellik tüketici her benzersiz bir değer sağlar; böylece, NULL kabul sütunlarda kullanılabilir değil. IRowsetFastLoad::Insert çağrısı.

ssprop_fastloadkeepnulls

Sütun: No

R/W: Okuma/yazma

TYPE: VT_BOOL

Varsayılan: VARIANT_FALSE

Açıklama: Sütunlarla, VARSAYıLAN kısıtlama için NULL korur. Yalnızca etkiler. SQL Server NULL kabul etmek ve uygulanan VARSAYıLAN kısıtlamayı olan sütun.

variant_false: SQL Server sütun için varsayılan değeri ekler, SQL Server Yerel istemci OLE DB sağlayıcı ve tüketici NULL için sütun içeren bir satır ekler.

variant_true: SQL Server ekler için sütun NULL olduğunda değer SQL Server Yerel istemci OLE DB sağlayıcı ve tüketici NULL için sütun içeren bir satır ekler.

ssprop_fastloadoptions

Sütun: No

R/W: Okuma/yazma

TYPE: VT_BSTR

Varsayılan: Hiçbiri

Açıklama: Bu özellik ile aynıdır-h "ipucu,...n" seçeneği Kullanımıbcp yardımcı programı.Aşağıdaki dizelerini, yığın içinde veri kopyalama seçenekleri olarak kullanılabilir bir tablo.

ORDER(column[ASC | DESC][,...n]): Veri dosyasındaki verilerin sıralama düzeni. Veri dosyasına yükleniyor, kümelenmiş dizin göre sıralanır, toplu kopyalama performansı artırıldı tablo.

rows_per_batch = bb: Toplu iş olarak ( bazında veri satırlarının sayısıbb).Sunucu toplu yükleme değerine göre en iyi duruma getirir bb.Varsayılan olarak, rows_per_batch bilinmiyor.

kilobytes_per_batch = Bilgi: Toplu iş olarak (cc) bazında veri kilobayt (KB) sayısıdır. Varsayılan olarak, kilobytes_per_batch bilinmiyor.

tablock: Tablo düzey kilit toplu kopyalama işlemi süresince alınan. Yalnızca toplu kopyalama işlemi süresince bir kilit tutan kilit çakışması tablosundaki azalttığı bu seçenek, performansı önemli ölçüde artırır.Dizin tablo varsa, BIR tabloda birden çok istemci tarafından aynı anda yüklenebilecek ve tablock belirtildi.Varsayılan Tablo seçeneğini kilit davranışı belirlenir. Tablo kilit toplu yükleme hakkında.

check_constraints: Tüm kısıtlamalartable_name toplu kopyalama işlemi sırasında kontrol.Varsayılan olarak, kısıtlamaları göz ardı edilir.

fire_trigger: In SQL Server 2000, günlük kayıtları tetikleyicisi mantığına bağlıdır çünkü Tetikleyicileri etkin, en iyi duruma getirilmiş günlük mümkün olmadı. Etkin bir tetikleyici içeren bir toplu alma işlemi sırasında en iyi hale getirme (BU kilitleri dahil) tüm toplu oturum açma işlemlerini devre dışı bırakıldı.

Ile başlayan SQL Server 2005Ancak, SQL Server Satır sürümleri sürüm deposunda saklar ve satır sürüm Tetikleyicileri kullanır... tempdb.Bu nedenle, toplu günlük en iyi duruma getirmeleri bile Tetikleyici etkinleştirildiğinde kullanılabilir.Etkin tetikleyiciler çok sayıda satır içeren toplu iş iş alma, toplu iş iş önce boyutunu genişletmeniz gerekebilir tempdb.

Toplu kopyalama işlemleri temel alan dosyası kullanma

The SQL Server Native istemci OLE DB sağlayıcı implements the IBCPSession arabirim to expose support for SQL Server file-based toplu kopyalama operations. The IBCPSession arabirim implements the IBCPSession::BCPColFmt, IBCPSession::BCPColumns, IBCPSession::BCPControl, IBCPSession::BCPDone, IBCPSession::BCPExec, IBCPSession::BCPInit, IBCPSession::BCPReadFmt, and IBCPSession::BCPWriteFmtmethods.

SQL Server yerel istemci ODBC sürücüsü

The SQL Server Native istemci ODBC driver maintains the same support for toplu kopyalama operations that were part of previous versions of the SQL Server ODBC driver. Toplu kopyalama işlemleri kullanma hakkında bilgi için SQL Server Yerel istemci ODBC sürücüsü için bkz: Toplu kopyalama işlemleri (ODBC) gerçekleştirme.