Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Managed Instance
Poskytuje informace o ad hoc připojení jako součást názvu čtyřdílného objektu bez použití názvu propojeného serveru.
Syntax
OPENDATASOURCE ( 'provider_name', 'init_string' )
Arguments
'provider_name'
Název zaregistrovaný jako PROGID zprostředkovatele OLE DB, který se používá pro přístup ke zdroji dat. provider_name je datový typ char bez výchozí hodnoty.
Important
Nativní klient SQL Serveru (často zkracovaný jako SNAC) byl odebrán z SQL Serveru 2022 (16.x) a SQL Server Management Studio 19 (SSMS). Pro nový vývoj se nedoporučuje zprostředkovatele SQL Server Native Client OLE DB (SQLNCLI nebo SQLNCLI11) ani starší verze zprostředkovatele Microsoft OLE DB pro SQL Server (SQLOLEDB). Přejděte na nový ovladač Microsoft OLE DB (MSOLEDBSQL) pro SQL Server do budoucna.
'init_string'
Připojovací řetězec předaný rozhraní IDataInitialize cílového zprostředkovatele. Syntaxe řetězce zprostředkovatele je založená na párech klíčových hodnot oddělených středníky, například: 'keyword1=value;keyword2=value'.
Konkrétní páry klíčového slova podporované u zprostředkovatele najdete v sadě MICROSOFT Data Access SDK. Tato dokumentace definuje základní syntaxi. Následující tabulka uvádí nejčastěji používaná klíčová slova v argumentu init_string .
| Keyword | Vlastnost OLE DB | Platné hodnoty a popis |
|---|---|---|
| Zdroj dat | DBPROP_INIT_DATASOURCE | Název zdroje dat, ke kterému se chcete připojit. Různí poskytovatelé to interpretují různými způsoby. U zprostředkovatele OLE DB nativního klienta SYSTÉMU SQL Server označuje název serveru. U zprostředkovatele Jet OLE DB označuje úplnou cestu k souboru .mdb nebo souboru .xls. |
| Location | DBPROP_INIT_LOCATION | Umístění databáze, ke které se chcete připojit. |
| Rozšířené vlastnosti | DBPROP_INIT_PROVIDERSTRING | Připojovací řetězec specifický pro zprostředkovatele. |
| Časový limit připojení | DBPROP_INIT_TIMEOUT | Hodnota časového limitu, po které se pokus o připojení nezdaří. |
| ID uživatele | DBPROP_AUTH_USERID | ID uživatele, které se má použít pro připojení. |
| Password | DBPROP_AUTH_PASSWORD | Heslo, které se má použít pro připojení. |
| Catalog | DBPROP_INIT_CATALOG | Název počátečního nebo výchozího katalogu při připojování ke zdroji dat. |
| Integrované zabezpečení | DBPROP_AUTH_INTEGRATED | SSPI k určení ověřování systému Windows |
Remarks
OPENROWSET vždy dědí kolaci instance bez ohledu na kolaci nastavenou pro sloupce.
OPENDATASOURCE lze použít pro přístup ke vzdáleným datům ze zdrojů dat OLE DB pouze tehdy, když je možnost registru DisallowAdhocAccess explicitně nastavena na hodnotu 0 pro zadaného zprostředkovatele a je povolena možnost rozšířené konfigurace distribuovaných dotazů Ad Hoc. Pokud tyto možnosti nejsou nastavené, výchozí chování neumožňuje ad hoc přístup.
Funkci OPENDATASOURCE lze použít ve stejných umístěních syntaxe Transact-SQL jako název propojeného serveru.
OPENDATASOURCE Proto lze použít jako první část názvu čtyřdílné části, která odkazuje na název tabulky nebo zobrazení v příkazu SELECT, INSERT, UPDATE nebo DELETE nebo na vzdálenou uloženou proceduru v příkazu EXECUTE. Ve vzdálených uložených procedurách OPENDATASOURCE by se měl odkazovat na jinou instanci SQL Serveru. OPENDATASOURCE nepřijímá proměnné pro své argumenty.
Podobně jako funkce OPENROWSET by OPENDATASOURCE se měly odkazovat pouze na zdroje dat OLE DB, ke kterým se přistupuje zřídka. Definujte propojený server pro všechny zdroje dat, ke kterým se přistupuje vícekrát. OpenDATASOURCE ani OPENROWSET neposkytuje všechny funkce definic odkazovaného serveru, jako je správa zabezpečení a schopnost dotazovat se na informace katalogu. Všechny informace o připojení, včetně hesel, musí být poskytnuty při každém zavolání OPENDATASOURCE.
Important
Ověřování systému Windows je mnohem bezpečnější než ověřování SYSTÉMU SQL Server. Pokud je to možné, měli byste použít ověřování systému Windows.
OPENDATASOURCE by se nemělo používat s explicitními hesly v připojovacím řetězci.
Požadavky na připojení pro každého zprostředkovatele jsou podobné požadavkům pro tyto parametry při vytváření propojených serverů. Podrobnosti pro mnoho běžných poskytovatelů jsou uvedeny v článku sp_addlinkedserver (Transact-SQL).
Jakékoli volání OPENDATASOURCE, OPENQUERYnebo OPENROWSET v klauzuli FROM se vyhodnocuje samostatně a nezávisle na každém volání těchto funkcí používaných jako cíl aktualizace, i když jsou do těchto dvou volání zadány stejné argumenty. Konkrétně platí, že podmínky filtrování nebo spojení použité na výsledek jednoho z těchto volání nemají žádný vliv na výsledky druhého volání.
Permissions
Libovolný uživatel může spustit OPENDATASOURCE. Oprávnění, která se používají pro připojení ke vzdálenému serveru, se určují z připojovacího řetězce.
Limitations
Ovladač databázového stroje Microsoft Access není podporován.
Examples
A. Použití OPENDATASOURCE s příkazem SELECT a ovladačem OLE DB SQL Serveru
Následující příklad používá ovladač Microsoft OLE DB pro SQL Server pro přístup HumanResources.Department k tabulce v AdventureWorks2025 databázi na vzdáleném serveru Seattle1.
Příkaz SELECT slouží k definování vrácené sady řádků. Řetězec zprostředkovatele obsahuje klíčová slova Server a Trusted_Connection. Tato klíčová slova jsou rozpoznána ovladačem OLE DB SYSTÉMU SQL Server.
SELECT GroupName, Name, DepartmentID
FROM OPENDATASOURCE('MSOLEDBSQL', 'Server=Seattle1;Database=AdventureWorks2022;TrustServerCertificate=Yes;Trusted_Connection=Yes;').HumanResources.Department
ORDER BY GroupName, Name;
B. Použití OPENDATASOURCE s select a zprostředkovatelEM OLE DB SQL Serveru
Následující příklad vytvoří ad hoc připojení k Payroll instanci SQL Serveru na serveru Londona dotazuje AdventureWorks2022.HumanResources.Employee tabulku.
Note
Použití SQLNCLI přesměruje SQL Server na nejnovější verzi zprostředkovatele OLE DB nativního klienta SQL Serveru. Očekává se, že bude zprostředkovatel OLE DB zaregistrovaný v zadaném rozhraní PROGID v registru.
Important
Zprostředkovatel SQL Server Native Client OLE DB (SQLNCLI) zůstává zastaralý a nedoporučuje se ho používat pro novou vývojovou práci. Místo toho použijte nový ovladač Microsoft OLE DB pro SQL Server (MSOLEDBSQL), který bude aktualizován nejnovějšími funkcemi serveru.
SELECT *
FROM OPENDATASOURCE('SQLNCLI',
'Data Source=London\Payroll;Integrated Security=SSPI')
.AdventureWorks2022.HumanResources.Employee;
C. Použití zprostředkovatele Microsoft OLE DB pro Jet
Následující příklad vytvoří ad hoc připojení k excelové tabulce ve formátu 1997 –2003.
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;
Další kroky
- OPENROWSET (Transact-SQL)
- sp_addlinkedserver (Transact-SQL)