Toplu veri bulk INSERT veya openrowset(bulk...) kullanarak alma (SQL Server)
Bu konuda nasıl genel bakış sağlar Transact-SQLbulk INSERT deyimi ve Ekle...SEÇİN * openrowset(bulk...) from deyimi toplu veri dosyasına veri almak a SQL Servertablosu. Bu konuda Ayrıca bulk INSERT ve openrowset(bulk…) kullanarak ve toplu alma uzak veri kaynağı için bu yöntemleri kullanarak güvenlik konuları açıklanmaktadır.
[!NOT]
bulk INSERT veya openrowset(bulk…) kullandığınızda, bunu anlamak önemlidir nasıl SQL Serversürüm işleme kimliğe bürünme. Daha fazla bilgi için bkz: "Güvenlik konuları" Bu konudaki.
bulk INSERT deyimi
bulk INSERT verileri bir tabloya veri dosyasından yükler. Bu işlev tarafından sağlanan benzer inseçeneği bcpkomutu; Ancak, veri dosyası tarafından okunur SQL Serverişlem. bulk INSERT sözdiziminin açıklaması için bkz: BULK INSERT (Transact-SQL).
Örnekler
bulk INSERT örnekler için bkz:
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
(SQL Server) tablo sütun Atla için bir biçim dosyası kullanma
Tablo Sütunlar veri dosyası alanlarını (SQL Server) eşlemek için bir biçim dosyası kullanma
OPENROWSET(BULK…) İşlevi
openrowset toplu satır kümesi sağlayıcı openrowset işlevini çağırarak ve bulk seçeneği belirterek erişilir. openrowset(bulk…) işlevi bir ole db sağlayıcısı aracılığıyla bir veri dosyası gibi bir uzak veri kaynağına bağlanarak uzak veri erişimi sağlar.
Toplu alma verileri select… openrowset(bulk…) çağrıfrom yan tümcesi INSERT deyimi içinde. Veri alma toplu temel sözdizimi şöyledir:
EKLE... SEÇİN * OPENROWSET(BULK...) DAN
Bir INSERT deyimi kullanıldığında, Tablo ipuçları openrowset(bulk...) destekler. Normal Tablo ipuçları, tablock gibi ek olarak toplu yan tümcesi aşağıdaki özel tablo ipuçları kabul edebilir: IGNORE_CONSTRAINTS (yalnızca check kısıtlamaları dikkate almaz), IGNORE_TRIGGERS, keepdefaults ve KEEPIDENTITY. Daha fazla bilgi için, bkz. Tablo ipuçları (Transact-sql).
bulk seçeneği ek kullanımları hakkında daha fazla bilgi için bkz: OPENROWSET (Transact-SQL).
Örnekler
INSERT örnekleri için...SEÇİN * from openrowset(bulk...) deyimleri bkz: aşağıdaki konular:
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
(SQL Server) tablo sütun Atla için bir biçim dosyası kullanma
Atla veri alanı (SQL Server) için bir biçim dosyası kullanma
Tablo Sütunlar veri dosyası alanlarını (SQL Server) eşlemek için bir biçim dosyası kullanma
Güvenlikle İlgili Hususlar
Bir kullanıcı bir SQL Servergiriş, güvenlik profili SQL Serverişlem hesabı kullanılır. Buna karşılık, eğer bir SQL Serverkullanıcı oturum açtığında Windows kimlik doğrulaması kullanarak, kullanıcı, kullanıcı hesabının güvenlik profili bakılmaksızın erişilebileceğini dosyaları okuyabilir SQL Serverişlem.
Örneğin örneğine oturum açan bir kullanıcının düşünün SQL ServerWindows kimlik doğrulaması kullanarak. Kullanıcı bir veri dosyasına veri için bulk INSERT veya openrowset kullanabilmek için bir SQL Servertablo, kullanıcı hesabı gerektirir veri dosyasını okuma erişimi. Veri dosyasına erişim ile kullanıcı veri dosyasından tablo bile alabilirsiniz SQL Serverişlem dosyaya erişim izni yok. Kullanıcının dosya erişim izni vermek yok SQL Serverişlem.
SQL Serverve Microsoftörneğini etkinleştirmek için Windows yapılandırılabilir SQL Serverbaşka bir örneğine bağlanmak için SQL Servertarafından kimliği doğrulanmış Windows kullanıcı kimlik bilgilerini iletme. Bu düzenleme olarak bilinen kimliğe bürünme veya temsilcisi. Anlama nasıl SQL Serversürüm tanıtıcısı güvenlik için kullanıcı kimliğine bürünme veya openrowset bulk INSERT kullandığınızda önemlidir. Kullanıcı kimliğine bürünme verir ya da daha farklı bir bilgisayarda bulunan veri dosyası SQL Serverişlem veya kullanıcının. Örneğin, eğer bir kullanıcı BİLGİSAYAR_A bir veri dosyasına erişimi Computer_Bve kimlik bilgileri temsilcisi ayarladığınızdan, kullanıcı örneğine bağlanabilir SQL Server, üzerinde çalıştığı Computer_C, veri dosyası üzerinde erişim Computer_Bve üzerinde bir tabloya Bu dosyadan veri alma toplu Computer_C. Daha fazla bilgi için bkz: Impersonation Overview.
Toplu uzak veri dosyasından alma
bulk INSERT veya INSERT kullanma...SEÇİN * toplu olarak openrowset(bulk...) başka bir bilgisayardan veri alma, veri dosyasındaki iki bilgisayar arasında paylaşılmış olması gerekir. Paylaşılan veri dosyası belirtmek için kullanın, evrensel adlandırma kuralı (unc) adı, genel biçimi alır, **\Servername\Sharename\Path\**Filename. Ayrıca, veri dosyasına erişmek için kullanılan hesabı uzak dosyasını okumak için gerekli izinleriniz olmalıdır.
Örneğin, aşağıdaki BULK INSERTdeyimi toplu ithalat verileri SalesOrderDetailtablo AdventureWorksveritabanı olan adlı bir veri dosyası newdata.txt. Bu veri dosyası adlı paylaşılan bir klasörde bulunan \dailyordersadlı dizinin bir ağda paylaşıma salesforceadlı bir sistemde computer2.
BULK INSERT AdventureWorks2012.Sales.SalesOrderDetail
FROM '\\computer2\salesforce\dailyorders\neworders.txt';
GO
[!NOT]
Bu kısıtlama geçerli değildir bcpdosyanın bağımsız istemci okuyacağı için yardımcı SQL Server.
Ayrıca bkz.
Başvuru
Yantümcesi (Transact-sql) seçin