Megosztás a következőn keresztül:


OPENDATASOURCE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure 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$] ;  

Következő lépések