Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Önemli
SQL Server Native Client (SNAC) ile birlikte gönderilmez:
- SQL Server 2022 (16.x) ve sonraki sürümleri
- SQL Server Management Studio 19 ve sonraki sürümleri
YENI uygulama geliştirme için SQL Server Yerel İstemcisi (SQLNCLI veya SQLNCLI11) ve SQL Server için eski Microsoft OLE DB Sağlayıcısı (SQLOLEDB) önerilmez.
Yeni projeler için aşağıdaki sürücülerden birini kullanın:
SQL Server Veritabanı Altyapısı'nın (sürüm 2012 ile 2019 arasında) bir bileşeni olarak gelen SQLNCLI için, Destek Yaşam Döngüsü özel durumukonusuna bakın.
SQL Server toplu kopyalama özelliği, büyük miktarlardaki verilerin SQL Server tablosuna veya görünümüne veya dışına aktarılmasını destekler. Veriler bir SELECT deyimi belirtilerek de aktarılabilir. Veriler SQL Server ile ASCII dosyası gibi bir işletim sistemi veri dosyası arasında taşınabilir. Veri dosyası farklı biçimlere sahip olabilir; biçimi, bir biçim dosyasında toplu olarak kopyalanacak şekilde tanımlanır. İsteğe bağlı olarak, veriler program değişkenlerine yüklenebilir ve toplu kopyalama işlevleri ve yöntemleri kullanılarak SQL Server'a aktarılabilir.
Bu özelliği gösteren örnek bir uygulama için bkz. IRowsetFastLoad (OLE DB) Kullanarak Verileri Toplu Kopyalama.
Bir uygulama genellikle aşağıdaki yollardan biriyle toplu kopyalama kullanır:
Bir tablo, görünüm veya Transact-SQL deyiminin sonuç kümesinden verilerin tablo veya görünümle aynı biçimde depolandığı bir veri dosyasına toplu kopyalama.
Buna yerel mod veri dosyası adı verilir.
Bir tablo, görünüm veya Transact-SQL deyiminin sonuç kümesinden verilerin tablo veya görünümden farklı bir biçimde depolandığı bir veri dosyasına toplu kopyalama.
Bu durumda, veri dosyasında depolandığı için her sütunun özelliklerini (veri türü, konum, uzunluk, sonlandırıcı vb.) tanımlayan ayrı bir biçim dosyası oluşturulur. Tüm sütunlar karakter biçimine dönüştürülürse, sonuçta elde edilen dosya karakter modu veri dosyası olarak adlandırılır.
Veri dosyasından tabloya veya görünüme toplu kopyalama.
Gerekirse, veri dosyasının düzenini belirlemek için bir biçim dosyası kullanılır.
Program değişkenlerine veri yükleyin, ardından bir kerede bir satırda toplu kopyalama için toplu kopyalama işlevlerini kullanarak verileri bir tabloya veya görünüme aktarın.
Toplu kopyalama işlevleri tarafından kullanılan veri dosyalarının başka bir toplu kopyalama programı tarafından oluşturulması gerekmez. Başka herhangi bir sistem, toplu kopyalama tanımlarına göre bir veri dosyası oluşturabilir ve dosyayı biçimlendirebilir; Bu dosyalar daha sonra sql server'a veri aktarmak için bir SQL Server toplu kopyalama programı ile kullanılabilir. Örneğin, sekmeyle ayrılmış bir dosyadaki bir elektronik tablodan verileri dışarı aktarabilir, sekmeyle ayrılmış dosyayı açıklayan bir biçim dosyası oluşturabilir ve ardından verileri hızla SQL Server'a aktarmak için toplu kopyalama programı kullanabilirsiniz. Toplu kopyalama tarafından oluşturulan veri dosyaları da diğer uygulamalara aktarılabilir. Örneğin, bir tablodaki verileri dışarı aktarmak veya daha sonra elektronik tabloya yüklenebilen sekmeyle ayrılmış bir dosyaya görüntülemek için toplu kopyalama işlevlerini kullanabilirsiniz.
Uygulamaları toplu kopyalama işlevlerini kullanacak şekilde kodlayan programcılar, iyi bir toplu kopyalama performansı için genel kurallara uymalıdır. SQL Server'da toplu kopyalama işlemleri desteği hakkında daha fazla bilgi için bkz. Verileri Toplu İçeri ve Dışarı Aktarma (SQL Server).
Sınırlamalar ve Kısıtlamalar
CLR kullanıcı tanımlı türü (UDT) ikili veri olarak bağlanmalıdır. Biçim dosyası hedef UDT sütunu için veri türü olarak SQLCHAR belirtse bile, BCP yardımcı programı verileri ikili olarak ele alır.
SET FMTONLY OFF'i toplu kopyalama işlemleriyle kullanmayın. SET FMTONLY OFF toplu kopyalama işleminizin başarısız olmasına veya beklenmeyen sonuçlar vermesine neden olabilir.
SQL Server Yerel İstemci OLE DB Sağlayıcısı
SQL Server Yerel İstemci OLE DB sağlayıcısı, SQL Server veritabanıyla toplu kopyalama işlemleri gerçekleştirmek için iki yöntem uygular. İlk yöntem, bellek tabanlı toplu kopyalama işlemleri için IRowsetFastLoad arabirimini kullanmayı içerir; ve ikincisi, dosya tabanlı toplu kopyalama işlemleri için IBCPSession arabirimini kullanmayı içerir.
Bellek Tabanlı Toplu Kopyalama İşlemlerini Kullanma
SQL Server Yerel İstemci OLE DB sağlayıcısı, SQL Server bellek tabanlı toplu kopyalama işlemlerine yönelik desteği kullanıma sunma amacıyla IRowsetFastLoad arabirimini uygular. IRowsetFastLoad arabirimi, IRowsetFastLoad::Commit ve IRowsetFastLoad::InsertRow yöntemlerini uygular.
IRowsetFastLoad için Oturum Etkinleştirme
Tüketici, SQL Server Yerel İstemci OLE DB sağlayıcısına özgü veri kaynağı özelliği SSPROP_ENABLEFASTLOAD VARIANT_TRUE olarak ayarlayarak SQL Server Yerel İstemci OLE DB sağlayıcısına toplu kopyalama gereksinimini bildirir. Veri kaynağında özelliği ayarlandığında, tüketici bir SQL Server Yerel İstemci OLE DB sağlayıcı oturumu oluşturur. Yeni oturum, tüketicinin IRowsetFastLoad arabirimine erişmesine olanak tanır.
Uyarı
Veri kaynağını başlatmak için IDataInitialize arabirimi kullanılıyorsa, IOpenRowset::OpenRowset yönteminin rgPropertySets parametresinde SSPROP_IRowsetFastLoad özelliğini ayarlamak gerekir; aksi takdirde, OpenRowset yöntemine yapılan çağrı E_NOINTERFACE döndürür.
Toplu kopyalama için bir oturumun etkinleştirilmesi, oturumdaki arabirimler için SQL Server Yerel İstemci OLE DB sağlayıcısı desteğini kısıtlar. Toplu kopyalama özellikli oturum yalnızca aşağıdaki arabirimleri kullanıma sunar:
IDBSchemaRowset
IGetDataSource
IOpenRowset
ISupportErrorInfo
ITransactionJoin
Toplu kopyalama özellikli satır kümelerinin oluşturulmasını devre dışı bırakmak ve SQL Server Yerel İstemci OLE DB sağlayıcı oturumunun standart işlemeye geri dönmesine neden olmak için SSPROP_ENABLEFASTLOAD VARIANT_FALSE olarak sıfırlayın.
IRowsetFastLoad Satır Kümeleri
SQL Server Yerel İstemci OLE DB sağlayıcısı toplu kopyalama satır kümeleri salt okunurdur, ancak tüketicinin SQL Server tablosunun yapısını belirlemesine olanak sağlayan arabirimleri kullanıma sunar. Aşağıdaki arabirimler toplu kopyalama özellikli SQL Server Yerel İstemcisi OLE DB sağlayıcı satır kümesinde kullanıma sunulur:
IAccessor
IColumnsInfo
IColumnsRowset
IConvertType
IRowsetFastLoad
IRowsetInfo
ISupportErrorInfo
Sağlayıcıya özgü özellikler sql server yerel istemci OLE DB sağlayıcısı toplu kopyalama satır kümesinin davranışlarını SSPROP_FASTLOADOPTIONS, SSPROP_FASTLOADKEEPNULLS ve SSPROP_FASTLOADKEEPIDENTITY denetler. Özellikler, rgPropertySetsIOpenRowset parametre üyesinin rgProperties üyesinde belirtilir.
| Mülk Kimliği | Açıklama |
|---|---|
| SSPROP_FASTLOADKEEPIDENTITY | Sütun: Hayır R/W: Okuma/yazma Tür: VT_BOOL Varsayılan: VARIANT_FALSE Açıklama: Tüketici tarafından sağlanan kimlik değerlerini korur. VARIANT_FALSE: SQL Server tablosundaki bir kimlik sütununun değerleri SQL Server tarafından oluşturulur. Sütuna bağlı tüm değerler SQL Server Yerel İstemci OLE DB sağlayıcısı tarafından yoksayılır. VARIANT_TRUE: Tüketici, SQL Server kimlik sütunu için değer sağlayan bir erişimci bağlar. Kimlik özelliği NULL kabul eden sütunlarda kullanılamaz, bu nedenle tüketici her IRowsetFastLoad::Insert çağrısında benzersiz bir değer sağlar. |
| SSPROP_FASTLOADKEEPNULLS | Sütun: Hayır R/W: Okuma/yazma Tür: VT_BOOL Varsayılan: VARIANT_FALSE Açıklama: DEFAULT kısıtlaması olan sütunlar için NULL tutar. Yalnızca NULL kabul eden ve DEFAULT kısıtlaması uygulanmış SQL Server sütunlarını etkiler. VARIANT_FALSE: SQL Server Yerel İstemci OLE DB sağlayıcısı tüketicisi sütun için NULL içeren bir satır eklediğinde SQL Server sütun için varsayılan değeri ekler. VARIANT_TRUE: SQL Server Yerel İstemci OLE DB sağlayıcısı tüketicisi sütun için NULL içeren bir satır eklediğinde, SQL Server sütun değeri için NULL ekler. |
| SSPROP_FASTLOADOPTIONS | Sütun: Hayır R/W: Okuma/yazma Tür: VT_BSTR Varsayılan: yok Açıklama: Bu özellik -h "ipucu[,... ile aynıdır n]" seçeneğine tıklayın. Aşağıdaki dizeler, verilerin tabloya toplu olarak kopyalanmasında seçenekler olarak kullanılabilir. ORDER(column[ASC | DESC][,... n]): Veri dosyasındaki verilerin sırasını sıralayın. Yüklenen veri dosyası tablodaki kümelenmiş dizine göre sıralanırsa toplu kopyalama performansı iyileştirilir. = ROWS_PER_BATCHbb: Toplu iş başına veri satırlarının sayısı (bb olarak). Sunucu, bb değerine göre toplu yüklemeyi iyileştirir. Varsayılan olarak ROWS_PER_BATCH bilinmiyor. = KILOBYTES_PER_BATCHcc: Toplu iş başına kilobayt (KB) veri sayısı (cc olarak). Varsayılan olarak , KILOBYTES_PER_BATCH bilinmiyor. TABLOCK: Toplu kopyalama işlemi süresi boyunca tablo düzeyinde bir kilit alınır. Bu seçenek, yalnızca toplu kopyalama işlemi boyunca bir kilit tutmanın tablodaki kilit çekişmesini azaltması nedeniyle performansı önemli ölçüde artırır. Tabloda dizin yoksa ve TABLOCK belirtilirse, tablo birden çok istemci tarafından eşzamanlı olarak yüklenebilir. Varsayılan olarak, kilitleme davranışı toplu yüklemede tablo seçeneği tablo kilidi tarafından belirlenir. CHECK_CONSTRAINTS: table_name üzerindeki tüm kısıtlamalar toplu kopyalama işlemi sırasında denetleniyor. Varsayılan olarak, kısıtlamalar yoksayılır. FIRE_TRIGGER: SQL Server tetikleyiciler için satır sürümü oluşturma kullanır ve satır sürümlerini tempdb'deki sürüm deposunda depolar. Bu nedenle, tetikleyiciler etkinleştirildiğinde bile toplu günlük iyileştirmeleri kullanılabilir. Tetikleyicileri etkin çok sayıda satır içeren bir toplu işlemi toplu içeri aktarmadan önce tempdb boyutunu genişletmeniz gerekebilir. |
Dosya Tabanlı Toplu Kopyalama İşlemlerini Kullanma
SQL Server Yerel İstemci OLE DB sağlayıcısı, SQL Server dosya tabanlı toplu kopyalama işlemlerine yönelik desteği kullanıma sunma amacıyla IBCPSession arabirimini uygular. IBCPSession arabirimi IBCPSession::BCPColFmt, IBCPSession::BCPColumns, IBCPSession::BCPControl, IBCPSession::BCPDone, IBCPSession::BCPExec, IBCPSession::BCPInit, IBCPSession::BCPReadFmt ve IBCPSession::BCPWriteFmt yöntemleri.
SQL Server Yerel İstemci ODBC Sürücüsü
SQL Server Yerel İstemci ODBC sürücüsü, SQL Server ODBC sürücüsünün önceki sürümlerinin parçası olan toplu kopyalama işlemleri için aynı desteği korur. SQL Server Yerel İstemci ODBC sürücüsünü kullanan toplu kopyalama işlemleri hakkında bilgi için bkz. Toplu Kopyalama İşlemleri Gerçekleştirme (ODBC).
Ayrıca Bkz.
SQL Server Yerel İstemci Özelliklerini
Veri Kaynağı Özellikleri (OLE DB)
Verileri Toplu İçeri ve Dışarı Aktarma (SQL Server)
IRowsetFastLoad (OLE DB)
IBCPSession (OLE DB)
Toplu İçeri Aktarma Performansını İyi hale getirme