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 Yönetilen Örneği
Bağlı sunucu adı kullanmadan dört bölümlü nesne adının parçası olarak geçici bağlantı bilgileri sağlar.
Transact-SQL söz dizimi kuralları
Syntax
OPENDATASOURCE ( 'provider_name', 'init_string' )
Arguments
'provider_name'
Veri kaynağına erişmek için kullanılan OLE DB sağlayıcısının PROGID'i olarak kaydedilen ad. provider_name , varsayılan değeri olmayan bir char veri türüdür.
Important
SQL Server Native Client (genellikle kısaltılmış SNAC) SQL Server 2022 (16.x) ve SQL Server Management Studio 19'dan (SSMS) kaldırılmıştır. Hem SQL Server Yerel İstemci OLE DB sağlayıcısı (SQLNCLI veya SQLNCLI11) hem de SQL Server için eski Microsoft OLE DB Sağlayıcısı (SQLOLEDB) yeni geliştirme için önerilmez. İleride SQL Server için yeni Microsoft OLE DB Sürücüsüne (MSOLEDBSQL) geçin.
'init_string'
Hedef sağlayıcının IDataInitialize arabirimine geçirilen bağlantı dizesi. Sağlayıcı dizesi söz dizimi, noktalı virgülle ayrılmış anahtar sözcük-değer çiftlerini temel alır, örneğin: 'keyword1=value;keyword2=value'.
Sağlayıcıda desteklenen belirli anahtar sözcük-değer çiftleri için bkz. Microsoft Veri Erişim SDK'sı. Bu belge temel söz dizimini tanımlar. Aşağıdaki tabloda , init_string bağımsız değişkeninde en sık kullanılan anahtar sözcükler listelenir.
| Keyword | OLE DB özelliği | Geçerli değerler ve açıklama |
|---|---|---|
| Veri Kaynağı | DBPROP_INIT_DATASOURCE | Bağlanacak veri kaynağının adı. Farklı sağlayıcılar bunu farklı şekillerde yorumlar. SQL Server Yerel İstemci OLE DB sağlayıcısı için bu, sunucunun adını gösterir. Jet OLE DB sağlayıcısı için bu, .mdb dosyasının veya .xls dosyasının tam yolunu gösterir. |
| Location | DBPROP_INIT_LOCATION | Bağlanacak veritabanının konumu. |
| Genişletilmiş Özellikler | DBPROP_INIT_PROVIDERSTRING | Sağlayıcıya özgü bağlantı dizesi. |
| Bağlantı zaman aşımı | DBPROP_INIT_TIMEOUT | Bağlantı denemesinin başarısız olduğu zaman aşımı değeri. |
| Kullanıcı kimliği | DBPROP_AUTH_USERID | Bağlantı için kullanılacak kullanıcı kimliği. |
| Password | DBPROP_AUTH_PASSWORD | Bağlantı için kullanılacak parola. |
| Catalog | DBPROP_INIT_CATALOG | Veri kaynağına bağlanırken ilk veya varsayılan kataloğun adı. |
| Tümleşik Güvenlik | DBPROP_AUTH_INTEGRATED | SSPI, Windows Kimlik Doğrulamasını belirtmek için |
Remarks
OPENROWSET sütunlar için harmanlama kümesinden bağımsız olarak her zaman örnek harmanlamasını devralır.
OPENDATASOURCE yalnızca Belirtilen sağlayıcı için DisallowAdhocAccess kayıt defteri seçeneği açıkça 0 olarak ayarlandığında ve Geçici Dağıtılmış Sorgular gelişmiş yapılandırma seçeneği etkinleştirildiğinde OLE DB veri kaynaklarından uzak verilere erişmek için kullanılabilir. Bu seçenekler ayarlanmadığında, varsayılan davranış geçici erişime izin vermez.
İşlev, OPENDATASOURCE bağlı sunucu adıyla aynı Transact-SQL söz dizimi konumlarında kullanılabilir. Bu nedenle, SELECT, INSERT, OPENDATASOURCE UPDATE veya DELETE deyimindeki bir tabloya veya görünüm adına başvuran dört parçalı bir adın ilk bölümü olarak veya EXECUTE deyimindeki uzak saklı yordam için kullanılabilir. Uzak saklı yordamlarda başka OPENDATASOURCE bir SQL Server örneğine başvurmalıdır. OPENDATASOURCE bağımsız değişkenleri kabul etmez.
İşlevde olduğu OPENROWSET gibi, OPENDATASOURCE yalnızca seyrek erişilen OLE DB veri kaynaklarına başvurmalıdır. Birden çok kez erişilen tüm veri kaynakları için bağlı bir sunucu tanımlayın. Ne OPENDATASOURCE ne de OPENROWSET, güvenlik yönetimi ve katalog bilgilerini sorgulama gibi bağlı sunucu tanımlarının tüm işlevlerini sağlamaz. OpenDATASOURCE her çağrıldığında parolalar da dahil olmak üzere tüm bağlantı bilgileri sağlanmalıdır.
Important
Windows Kimlik Doğrulaması, SQL Server Kimlik Doğrulaması'dan çok daha güvenlidir. Mümkün olduğunda Windows Kimlik Doğrulaması kullanmalısınız.
OPENDATASOURCE bağlantı dizesinde açık parolalarla kullanılmamalıdır.
Her sağlayıcının bağlantı gereksinimleri, bağlı sunucular oluşturulurken bu parametrelerin gereksinimlerine benzer. Birçok yaygın sağlayıcının ayrıntıları sp_addlinkedserver (Transact-SQL) makalesinde listelenmiştir.
OPENDATASOURCE yan tümcesindeki OPENQUERY, OPENROWSETveya FROM çağrıları, iki çağrıya aynı bağımsız değişkenler sağlansa bile güncelleştirmenin hedefi olarak kullanılan bu işlevlere yapılan çağrılardan ayrı ve bağımsız olarak değerlendirilir. Özellikle, bu çağrılardan birinin sonucuna uygulanan filtre veya birleştirme koşullarının diğerinin sonuçları üzerinde hiçbir etkisi yoktur.
Permissions
Tüm kullanıcılar OPENDATASOURCE yürütebilir. Uzak sunucuya bağlanmak için kullanılan izinler bağlantı dizesinden belirlenir.
Limitations
Microsoft Access Veritabanı Altyapısı sürücüsünde desteklenmez.
Examples
A. SELECT ve SQL Server OLE DB Sürücüsü ile OPENDATASOURCE Kullanma
Aşağıdaki örnek, uzak sunucudaki veritabanındaki HumanResources.Department tabloya erişmek AdventureWorks2025Seattle1 kullanır.
SELECT Döndürülen satır kümesini tanımlamak için bir deyim kullanılır. Sağlayıcı dizesi Server ve Trusted_Connection anahtar sözcüklerini içerir. Bu anahtar sözcükler SQL Server OLE DB Sürücüsü tarafından tanınır.
SELECT GroupName, Name, DepartmentID
FROM OPENDATASOURCE('MSOLEDBSQL', 'Server=Seattle1;Database=AdventureWorks2022;TrustServerCertificate=Yes;Trusted_Connection=Yes;').HumanResources.Department
ORDER BY GroupName, Name;
B. SELECT ve SQL Server OLE DB Sağlayıcısı ile OPENDATASOURCE kullanma
Aşağıdaki örnek, sunucusundaki PayrollLondonSQL Server örneğine geçici bir bağlantı oluşturur ve tabloyu sorgular AdventureWorks2022.HumanResources.Employee .
Note
SQLNCLI'nin kullanılması SQL Server'ı SQL Server Yerel İstemci OLE DB Sağlayıcısı'nın en son sürümüne yönlendirir. OLE DB sağlayıcısının kayıt defterinde belirtilen PROGID ile kaydedilmesi beklenir.
Important
SQL Server Yerel İstemci OLE DB sağlayıcısı (SQLNCLI) kullanım dışı kalır ve yeni geliştirme çalışmaları için kullanılması önerilmez. Bunun yerine, en son sunucu özellikleriyle güncelleştirilecek sql server (MSOLEDBSQL) için yeni Microsoft OLE DB Sürücüsünü kullanın.
SELECT *
FROM OPENDATASOURCE('SQLNCLI',
'Data Source=London\Payroll;Integrated Security=SSPI')
.AdventureWorks2022.HumanResources.Employee;
C. Jet için Microsoft OLE DB Sağlayıcısı'nı kullanma
Aşağıdaki örnek, 1997 - 2003 biçiminde bir Excel elektronik tablosuna geçici bir bağlantı oluşturur.
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;