Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Managed Instance
Alkalmi kapcsolatadatokat biztosít egy négyrészes objektumnév részeként csatolt kiszolgálónév használata nélkül.
Transact-SQL szintaxis konvenciók
Syntax
OPENDATASOURCE ( 'provider_name', 'init_string' )
Arguments
'provider_name'
Az adatforrás eléréséhez használt OLE DB-szolgáltató PROGID-jeként regisztrált név. provider_namekarakter típusú , alapértelmezett érték nélkül.
Important
A SQL Server natív ügyfél (gyakran rövidített SNAC) el lett távolítva az SQL Server 2022 (16.x) és az SQL Server Management Studio 19 (SSMS) szolgáltatásból. Az SQL Server natív ügyféloldali OLE DB-szolgáltatója (SQLNCLI vagy SQLNCLI11) és az SQL Serverhez készült régi Microsoft OLE DB-szolgáltató (SQLOLEDB) nem ajánlott új fejlesztéshez. Váltson az új Microsoft OLE DB-illesztőprogramra (MSOLEDBSQL) az SQL Serverhez, és a jövőben is ezt használja.
'init_string'
A célszolgáltató IDataInitialize felületének átadott kapcsolati sztring. A szolgáltatói sztring szintaxisa a kulcsszó-érték párokon alapul pontosvesszővel elválasztva, például: 'keyword1=value;keyword2=value'.
A szolgáltató által támogatott kulcsszó-érték párokért tekintse meg a Microsoft Data Access SDK-t. Ez a dokumentáció az alapszintű szintaxist határozza meg. Az alábbi táblázat a init_string argumentumban leggyakrabban használt kulcsszavakat sorolja fel.
| Keyword | OLE DB tulajdonság | Érvényes értékek és leírás |
|---|---|---|
| Adatforrás | DBPROP_INIT_DATASOURCE | Annak az adatforrásnak a neve, amelyhez csatlakozni szeretne. A különböző szolgáltatók ezt különböző módokon értelmezik. Az SQL Server natív ügyfél OLE DB-szolgáltatója esetében ez a kiszolgáló nevét jelzi. Jet OLE DB-szolgáltató esetén ez a .mdb vagy .xls fájl teljes elérési útját jelzi. |
| Location | DBPROP_INIT_LOCATION | A csatlakozni kívánt adatbázis helye. |
| Kiterjesztett tulajdonságok | DBPROP_INIT_PROVIDERSTRING | A szolgáltatóspecifikus kapcsolati sztring. |
| Csatlakozási időkorlát | DBPROP_INIT_TIMEOUT | Időtúllépési érték, amely után a kapcsolat sikertelen lesz. |
| Felhasználói azonosító | DBPROP_AUTH_USERID | A kapcsolathoz használandó felhasználói azonosító. |
| Password | DBPROP_AUTH_PASSWORD | A kapcsolathoz használandó jelszó. |
| Catalog | DBPROP_INIT_CATALOG | Az adatforráshoz való csatlakozáskor a kezdeti vagy az alapértelmezett katalógus neve. |
| Integrált biztonság | DBPROP_AUTH_INTEGRATED | SSPI, a Windows-hitelesítés megadásához |
Remarks
OPENROWSET mindig örökli a példány rendezést, függetlenül az oszlopok rendezési készletétől.
OPENDATASOURCE a távoli adatok OLE DB-adatforrásokból való elérésére csak akkor használható, ha a DisallowAdhocAccess beállításjegyzék-beállítás explicit módon 0 értékre van állítva a megadott szolgáltatóhoz, és engedélyezve van az alkalmi elosztott lekérdezések speciális konfigurációs beállítása. Ha ezek a beállítások nincsenek beállítva, az alapértelmezett viselkedés nem teszi lehetővé az alkalmi hozzáférést.
A OPENDATASOURCE függvény a csatolt kiszolgáló nevével azonos Transact-SQL szintaxishelyen használható. Ezért használható egy négyrészes név első részeként, amely egy SELECT, INSERT, OPENDATASOURCE UPDATE vagy DELETE utasításban lévő tábla- vagy nézetnévre, vagy egy EXECUTE utasítás távoli tárolt eljárására hivatkozik. Távoli tárolt eljárások OPENDATASOURCE esetén az SQL Server egy másik példányára kell hivatkoznia. Az OPENDATASOURCE nem fogad el változókat az argumentumaihoz.
A függvényhez OPENROWSETOPENDATASOURCE hasonlóan csak olyan OLE DB-adatforrásra kell hivatkoznia, amelyek ritkán érhetők el. Adjon meg egy csatolt kiszolgálót a többször elért adatforrásokhoz. Sem az OPENDATASOURCE, sem az OPENROWSET nem biztosítja a csatolt kiszolgáló definícióinak összes funkcióját, például a biztonságkezelést és a katalógusadatok lekérdezésének lehetőségét. Minden kapcsolati információt, beleértve a jelszavakat is, minden alkalommal meg kell adni, amikor az OPENDATASOURCE-t meghívják.
Important
A Windows-hitelesítés sokkal biztonságosabb, mint az SQL Server-hitelesítés. Amikor csak lehetséges, windowsos hitelesítést kell használnia.
OPENDATASOURCE nem használható explicit jelszóval a kapcsolati sztringben.
Az egyes szolgáltatók csatlakozási követelményei hasonlóak a csatolt kiszolgálók létrehozásakor használt paraméterek követelményeihez. Számos gyakori szolgáltató adatait a sp_addlinkedserver (Transact-SQL) című cikkben találja.
A OPENDATASOURCE záradékban szereplő OPENQUERY, OPENROWSETvagy FROM hívásait a rendszer a frissítés céljaként használt függvények hívásától függetlenül értékeli, még akkor is, ha a két hívás azonos argumentumokat ad meg. Az egyik ilyen hívás eredményére alkalmazott szűrési vagy csatlakozási feltételeknek nincs hatása a másik eredményére.
Permissions
Bármely felhasználó végrehajthatja az OPENDATASOURCE-t. A távoli kiszolgálóhoz való csatlakozáshoz használt engedélyeket a kapcsolati sztring határozza meg.
Limitations
A Microsoft Access adatbázismotor illesztőprogramja nem támogatott.
Examples
A. AZ OPENDATASOURCE használata a SELECT és az SQL Server OLE DB-illesztővel
Az alábbi példa az SQL Serverhez készült Microsoft OLE DB-illesztőprogramot használja a HumanResources.Department távoli kiszolgálón AdventureWorks2025található Seattle1 adatbázis táblájának eléréséhez.
A SELECT visszaadott sorkészlet meghatározásához utasítást használunk. A szolgáltatói sztring tartalmazza a Server és Trusted_Connection kulcsszavakat. Ezeket a kulcsszavakat az SQL Server OLE DB-illesztőprogramja ismeri fel.
SELECT GroupName, Name, DepartmentID
FROM OPENDATASOURCE('MSOLEDBSQL', 'Server=Seattle1;Database=AdventureWorks2022;TrustServerCertificate=Yes;Trusted_Connection=Yes;').HumanResources.Department
ORDER BY GroupName, Name;
B. AZ OPENDATASOURCE használata a SELECT és az SQL Server OLE DB-szolgáltatóval
Az alábbi példa alkalmi kapcsolatot hoz létre a Payroll kiszolgálón Londonlévő SQL Server-példányhoz, és lekérdezi a táblát AdventureWorks2022.HumanResources.Employee .
Note
Az SQLNCLI használata átirányítja az SQL Servert az SQL Server natív ügyféloldali OLE DB-szolgáltató legújabb verziójára. Az OLE DB-szolgáltató várhatóan regisztrálva lesz a megadott PROGID-ben a beállításjegyzékben.
Important
Az SQL Server natív ügyféloldali OLE DB-szolgáltatója (SQLNCLI) elavult marad, és nem ajánlott új fejlesztési munkákhoz használni. Ehelyett használja az SQL Server (MSOLEDBSQL) új Microsoft OLE DB-illesztőjét, amely a legújabb kiszolgálófunkciókkal frissül.
SELECT *
FROM OPENDATASOURCE('SQLNCLI',
'Data Source=London\Payroll;Integrated Security=SSPI')
.AdventureWorks2022.HumanResources.Employee;
C. A Microsoft OLE DB Provider for Jet használata
Az alábbi példa alkalmi kapcsolatot hoz létre egy Excel-számolótáblával 1997–2003-as formátumban.
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;