OPENDATASOURCE (Transact-SQL)OPENDATASOURCE (Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Stellt Ad-hoc-Verbindungsinformationen als Teil eines vierteiligen Objektnamens ohne Verwendung eines Verbindungsservernamens bereit.Provides ad hoc connection information as part of a four-part object name without using a linked server name.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax


OPENDATASOURCE ( provider_name, init_string )  

ArgumenteArguments

provider_nameprovider_name
Der Namen, der als PROGID des OLE DB-Anbieters für den Zugriff auf die Datenquelle registriert ist.Is the name registered as the PROGID of the OLE DB provider used to access the data source. Provider_name ist ein Char Datentyp verfügt über keinen Standardwert.provider_name is a char data type, with no default value.

init_stringinit_string
Die Verbindungszeichenfolge wird an die IDataInitialize-Schnittstelle des Zielanbieters übergeben werden.Is the connection string passed to the IDataInitialize interface of the destination provider. Syntax der Anbieterzeichenfolge basiert auf Schlüsselwort-Wert-Paaren, die durch Semikolons getrennt ein, z. B.: "Schlüsselwort1=Wert; Schlüsselwort2=Wert".The provider string syntax is based on keyword-value pairs separated by semicolons, such as: 'keyword1=value;keyword2=value'.

Informationen zu bestimmten, vom Anbieter unterstützten Paaren aus Schlüsselwort und Wert finden Sie im MDAC SDK ( MicrosoftMicrosoft Data Access Components Software Development Kit).For specific keyword-value pairs supported on the provider, see the MicrosoftMicrosoft Data Access SDK. In dieser Dokumentation wird die grundlegende Syntax definiert.This documentation defines the basic syntax. Die folgende Tabelle listet die am häufigsten verwendeten Schlüsselwörter in der Init_string Argument.The following table lists the most frequently used keywords in the init_string argument.

SchlüsselwortKeyword OLE DB-EigenschaftOLE DB property Gültige Werte und BeschreibungValid values and description
DatenquelleData Source DBPROP_INIT_DATASOURCEDBPROP_INIT_DATASOURCE Name der Datenquelle, mit der eine Verbindung hergestellt werden soll.Name of the data source to connect to. Unterschiedliche Anbieter interpretieren diesen Namen auf unterschiedliche Arten.Different providers interpret this in different ways. Für den OLE DB-Anbieter von SQL ServerSQL Server Native Client gibt er den Servernamen an.For SQL ServerSQL Server Native Client OLE DB provider, this indicates the name of the server. Für den OLE DB-Anbieter von Jet gibt er den vollständigen Pfad der MDB- oder XLS-Datei an.For Jet OLE DB provider, this indicates the full path of the .mdb file or .xls file.
SpeicherortLocation DBPROP_INIT_LOCATIONDBPROP_INIT_LOCATION Speicherort der Datenbank, mit der eine Verbindung hergestellt werden soll.Location of the database to connect to.
Extended PropertiesExtended Properties DBPROP_INIT_PROVIDERSTRINGDBPROP_INIT_PROVIDERSTRING Anbieterspezifische Verbindungszeichenfolge.The provider-specific connect-string.
Connect timeoutConnect timeout DBPROP_INIT_TIMEOUTDBPROP_INIT_TIMEOUT Timeoutwert, bei dessen Erreichen der Verbindungsversuch einen Fehler erzeugt.Time-out value after which the connection try fails.
Benutzer-IDUser ID DBPROP_AUTH_USERIDDBPROP_AUTH_USERID Für die Verbindung zu verwendende Benutzer-ID.User ID to be used for the connection.
KennwortPassword DBPROP_AUTH_PASSWORDDBPROP_AUTH_PASSWORD Für die Verbindung zu verwendendes Kennwort.Password to be used for the connection.
KatalogCatalog DBPROP_INIT_CATALOGDBPROP_INIT_CATALOG Name des Anfangs- oder Standardkatalogs beim Herstellen einer Verbindung mit der Datenquelle.The name of the initial or default catalog when connecting to the data source.
Integrierte SicherheitIntegrated Security DBPROP_AUTH_INTEGRATEDDBPROP_AUTH_INTEGRATED SSPI, zur Windows-AuthentifizierungSSPI, to specify Windows Authentication

HinweiseRemarks

OPENDATASOURCE kann nur dann für den Zugriff auf Remotedaten aus OLE DB-Datenquellen verwendet werden, wenn die DisallowAdhocAccess-Registrierungsoption explizit für den angegebenen Anbieter auf 0 festgelegt und die erweiterte Konfigurationsoption Ad Hoc Distributed Queries aktiviert wird.OPENDATASOURCE can be used to access remote data from OLE DB data sources only when the DisallowAdhocAccess registry option is explicitly set to 0 for the specified provider, and the Ad Hoc Distributed Queries advanced configuration option is enabled. Wenn diese Optionen nicht festgelegt sind, ermöglicht das Standardverhalten keinen Ad-hoc-Zugriff.When these options are not set, the default behavior does not allow for ad hoc access.

Die OPENDATASOURCE-Funktion kann an denselben Stellen in der Transact-SQLTransact-SQL-Syntax verwendet werden wie ein Verbindungsservername.The OPENDATASOURCE function can be used in the same Transact-SQLTransact-SQL syntax locations as a linked-server name. Deshalb kann OPENDATASOURCE als erster Teil eines vierteiligen Namens verwendet werden, der in einer SELECT-, INSERT-, UPDATE-, oder DELETE-Anweisung auf einen Tabellen- oder Sichtnamen bzw. in einer EXECUTE-Anweisung auf eine remote gespeicherte Prozedur verweist.Therefore, OPENDATASOURCE can be used as the first part of a four-part name that refers to a table or view name in a SELECT, INSERT, UPDATE, or DELETE statement, or to a remote stored procedure in an EXECUTE statement. Beim Ausführen von remote gespeicherten Prozeduren muss OPENDATASOURCE auf eine andere SQL ServerSQL Server-Instanz verweisen.When executing remote stored procedures, OPENDATASOURCE should refer to another instance of SQL ServerSQL Server. Für die Argumente von OPENDATASOURCE können keine Variablen verwendet werden.OPENDATASOURCE does not accept variables for its arguments.

Wie die OPENROWSET-Funktion sollte OPENDATASOURCE nur auf OLE DB-Datenquellen verweisen, auf die selten zugegriffen wird.Like the OPENROWSET function, OPENDATASOURCE should only reference OLE DB data sources that are accessed infrequently. Definieren Sie Verbindungsserver für Datenquellen, auf die nicht nur ein paar Mal zugegriffen wird.Define a linked server for any data sources accessed more than several times. Weder OPENDATASOURCE noch OPENROWSET stellen die gesamte Funktionalität einer Verbindungsserverdefinition bereit, wie die Sicherheitsverwaltung und die Möglichkeit, Kataloginformationen abzufragen.Neither OPENDATASOURCE nor OPENROWSET provide all the functionality of linked-server definitions, such as security management and the ability to query catalog information. Alle Verbindungsinformationen, einschließlich Kennwörtern, müssen bei jedem Aufruf von OPENDATASOURCE bereitgestellt werden.All connection information, including passwords, must be provided every time that OPENDATASOURCE is called.

Wichtig

Die Windows-Authentifizierung bietet deutlich mehr Sicherheit als die SQL ServerSQL Server-Authentifizierung.Windows Authentication is much more secure than SQL ServerSQL Server Authentication. Sie sollten nach Möglichkeit immer Windows-Authentifizierung verwenden.You should use Windows Authentication whenever possible. OPENDATASOURCE sollte nicht mit expliziten Kennwörtern in der Verbindungszeichenfolge verwendet werden.OPENDATASOURCE should not be used with explicit passwords in the connection string.

Die Verbindungsanforderungen für jeden Anbieter sind vergleichbar mit den Anforderungen an die Parameter, die zum Erstellen von Verbindungsservern verwendet werden.The connection requirements for each provider are similar to the requirements for those parameters when creating linked servers. Die Details für viele allgemeine Anbieter sind in folgendem Thema aufgeführt Sp_addlinkedserver ( Transact-SQL ) .The details for many common providers are listed in the topic sp_addlinkedserver (Transact-SQL).

Jeder Aufruf von OPENDATASOURCE, OPENQUERY oder OPENROWSET in der FROM-Klausel wird einzeln und unabhängig von anderen Aufrufen dieser Funktionen ausgewertet, die als Ziel des Updates verwendet werden, auch wenn für die beiden Aufrufe identische Argumente angegeben werden.Any call to OPENDATASOURCE, OPENQUERY, or OPENROWSET in the FROM clause is evaluated separately and independently from any call to these functions used as the target of the update, even if identical arguments are supplied to the two calls. Insbesondere haben Filter- oder Joinbedingungen, die auf das Ergebnis eines dieser Aufrufe angewendet werden, keine Auswirkungen auf die Ergebnisse des jeweils anderen.In particular, filter or join conditions applied on the result of one of those calls have no effect on the results of the other.

BerechtigungenPermissions

Jeder Benutzer kann OPENDATASOURCE ausführen.Any user can execute OPENDATASOURCE. Die Berechtigungen, die zum Herstellen einer Verbindung mit dem Remoteserver verwendet werden, werden anhand der Verbindungszeichenfolge bestimmt.The permissions that are used to connect to the remote server are determined from the connection string.

BeispieleExamples

Im folgenden Beispiel wird eine Ad-hoc-Verbindung mit der Payroll-Instanz von SQL ServerSQL Server auf dem Server London erstellt und die AdventureWorks2012.HumanResources.Employee-Tabelle abgefragt.The following example creates an ad hoc connection to the Payroll instance of SQL ServerSQL Server on server London, and queries the AdventureWorks2012.HumanResources.Employee table. (Wenn Sie SQLNCLI verwenden, leitet SQL ServerSQL Server zur neuesten Version des OLE DB-Anbieters von SQL ServerSQL Server Native Client um.)(Use SQLNCLI and SQL ServerSQL Server will redirect to the latest version of SQL ServerSQL Server Native Client OLE DB Provider.)

SELECT *  
FROM OPENDATASOURCE('SQLNCLI',  
    'Data Source=London\Payroll;Integrated Security=SSPI')  
    .AdventureWorks2012.HumanResources.Employee  

Im folgenden Beispiel wird eine Ad-hoc-Verbindung zu einem Excel-Arbeitsblatt im Format 1997 – 2003 hergestellt.The following example creates an ad hoc connection to an Excel spreadsheet in the 1997 - 2003 format.

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',  
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;  

Siehe auchSee Also

OPENROWSET (Transact-SQL) OPENROWSET (Transact-SQL)
sp_addlinkedserver (Transact-SQL)sp_addlinkedserver (Transact-SQL)