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

S’APPLIQUE À : ouiSQL Server (à partir de 2008) ouiAzure SQL Database (Managed Instance uniquement) nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Fournit les informations de connexion appropriées pour un nom d'objet en quatre parties sans utiliser de nom de serveur lié.Provides ad hoc connection information as part of a four-part object name without using a linked server name.

Icône de lien Conventions de la syntaxe Transact-SQLlink icon Transact-SQL Syntax Conventions

SyntaxeSyntax

  
OPENDATASOURCE ( provider_name, init_string )  

ArgumentsArguments

provider_nameprovider_name
Nom enregistré comme PROGID du fournisseur OLE DB utilisé pour accéder à la source de données.Is the name registered as the PROGID of the OLE DB provider used to access the data source. provider_name est du type de données char, sans valeur par défaut.provider_name is a char data type, with no default value.

init_stringinit_string
Chaîne de connexion transmise à l’interface IDataInitialize du fournisseur de destination.Is the connection string passed to the IDataInitialize interface of the destination provider. La syntaxe de la chaîne du fournisseur est basée sur des paires mot clé-valeur séparées par un point-virgule, par exemple : 'mot-clé1=valeur ; mot-clé2=valeur'.The provider string syntax is based on keyword-value pairs separated by semicolons, such as: 'keyword1=value ; keyword2=value'.

Pour plus d'informations sur les paires mot clé-valeur prises en charge par le fournisseur, consultez le kit de développement logiciel (SDK) de MicrosoftMicrosoft Data Access.For specific keyword-value pairs supported on the provider, see the MicrosoftMicrosoft Data Access SDK. Cette documentation définit la syntaxe de base.This documentation defines the basic syntax. Le tableau suivant répertorie les mots clés utilisés fréquemment dans l’argument init_string.The following table lists the most frequently used keywords in the init_string argument.

Mot cléKeyword Propriété OLE DBOLE DB property Valeurs admises et descriptionValid values and description
Source de donnéesData Source DBPROP_INIT_DATASOURCEDBPROP_INIT_DATASOURCE Nom de la source de données à laquelle la connexion doit être établie.Name of the data source to connect to. Ceci est interprété différemment selon les fournisseurs.Different providers interpret this in different ways. Pour le fournisseur SQL ServerSQL Server Native Client OLE DB, cette propriété indique le nom du serveur.For SQL ServerSQL Server Native Client OLE DB provider, this indicates the name of the server. Pour le fournisseur Jet OLE DB, elle indique le chemin d'accès complet au fichier .mdb ou .xls.For Jet OLE DB provider, this indicates the full path of the .mdb file or .xls file.
EmplacementLocation DBPROP_INIT_LOCATIONDBPROP_INIT_LOCATION Emplacement de la base de données à laquelle la connexion doit être établieLocation of the database to connect to.
Extended PropertiesExtended Properties DBPROP_INIT_PROVIDERSTRINGDBPROP_INIT_PROVIDERSTRING Chaîne de connexion spécifique au fournisseurThe provider-specific connect-string.
Connect timeoutConnect timeout DBPROP_INIT_TIMEOUTDBPROP_INIT_TIMEOUT Délai d’expiration au bout duquel la tentative de connexion échoueTime out value after which the connection try fails.
ID d'utilisateurUser ID DBPROP_AUTH_USERIDDBPROP_AUTH_USERID ID utilisateur à utiliser pour la connexionUser ID to be used for the connection.
Mot de passePassword DBPROP_AUTH_PASSWORDDBPROP_AUTH_PASSWORD Mot de passe à utiliser pour la connexionPassword to be used for the connection.
CatalogueCatalog DBPROP_INIT_CATALOGDBPROP_INIT_CATALOG Nom du catalogue initial ou par défaut lors de la connexion à la source de donnéesThe name of the initial or default catalog when connecting to the data source.
Sécurité intégréeIntegrated Security DBPROP_AUTH_INTEGRATEDDBPROP_AUTH_INTEGRATED SSPI pour spécifier l'authentification WindowsSSPI, to specify Windows Authentication

Notes Remarks

OPENDATASOURCE ne peut être utilisé pour accéder à des données distantes à partir de sources de données OLE DB que si l'option de Registre DisallowAdhocAccess est explicitement définie avec la valeur 0 pour le fournisseur spécifié et que l'option de configuration avancée Ad Hoc Distributed Queries est activée.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. Lorsque ces options ne sont pas définies, le comportement par défaut n'autorise pas l'accès d'égal à égal.When these options are not set, the default behavior does not allow for ad hoc access.

La fonction OPENDATASOURCE peut être utilisée dans les mêmes emplacements de syntaxe Transact-SQLTransact-SQL qu'un nom de serveur lié.The OPENDATASOURCE function can be used in the same Transact-SQLTransact-SQL syntax locations as a linked-server name. OPENDATASOURCE peut donc constituer la première des quatre parties d'un nom qui fait référence à un nom de table ou de vue (dans une instruction SELECT, INSERT, UPDATE ou DELETE) ou à une procédure stockée distante (dans une instruction EXECUTE).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. Lors de l'exécution de procédures stockées distantes, OPENDATASOURCE doit faire référence à une autre instance de SQL ServerSQL Server.When executing remote stored procedures, OPENDATASOURCE should refer to another instance of SQL ServerSQL Server. OPENDATASOURCE n'accepte pas de variables pour ses arguments.OPENDATASOURCE does not accept variables for its arguments.

Comme la fonction OPENROWSET, OPENDATASOURCE doit uniquement faire référence à des sources de données OLE DB qui ne sont pas sollicitées fréquemment.Like the OPENROWSET function, OPENDATASOURCE should only reference OLE DB data sources that are accessed infrequently. Définissez un serveur lié pour toutes les sources de données qui font l'objet de nombreux accès.Define a linked server for any data sources accessed more than several times. Ni OPENDATASOURCE ni OPENROWSET n’offrent toutes les fonctionnalités des définitions de serveur lié, notamment la gestion de la sécurité et la possibilité de consulter des informations du catalogue.Neither OPENDATASOURCE nor OPENROWSET provides all the functionality of linked-server definitions, such as security management and the ability to query catalog information. Toutes les informations de connexion, y compris les mots de passe, doivent être fournies à chaque appel de OPENDATASOURCE.All connection information, including passwords, must be provided every time that OPENDATASOURCE is called.

Important

L'authentification Windows est plus sûre que l'authentification SQL ServerSQL Server.Windows Authentication is much more secure than SQL ServerSQL Server Authentication. Veillez à utiliser l'authentification Windows chaque fois que c'est possible.You should use Windows Authentication whenever possible. OPENDATASOURCE ne doit pas être utilisé avec des mots de passe explicites dans la chaîne de connexion.OPENDATASOURCE should not be used with explicit passwords in the connection string.

Les exigences de connexion pour chaque fournisseur sont semblables à celles de ces paramètres lors de la création de serveurs liés.The connection requirements for each provider are similar to the requirements for those parameters when creating linked servers. Des informations relatives à de nombreux fournisseurs courants sont présentées dans l’article sp_addlinkedserver (Transact-SQL).The details for many common providers are listed in the article sp_addlinkedserver (Transact-SQL).

Tout appel à OPENDATASOURCE, OPENQUERY ou OPENROWSET dans la clause FROM est évalué séparément et indépendamment de tout appel à ces fonctions utilisé comme cible de la mise à jour, même si des arguments identiques sont fournis aux deux appels.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. En particulier, les conditions de filtre ou de jointure appliquées au résultat de l’un de ces appels n’ont aucun effet sur les résultats de l’autre.In particular, filter or join conditions applied on the result of one of those calls has no effect on the results of the other.

PermissionsPermissions

Tous les utilisateurs peuvent exécuter OPENDATASOURCE.Any user can execute OPENDATASOURCE. Les autorisations utilisées pour la connexion au serveur distant sont déterminées à partir de la chaîne de connexion.The permissions that are used to connect to the remote server are determined from the connection string.

ExemplesExamples

L'exemple suivant crée une connexion appropriée à l'instance Payroll de SQL ServerSQL Server sur le serveur London, puis interroge la table AdventureWorks2012.HumanResources.Employee.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. (L'utilisation de SQLNCLI et SQL ServerSQL Server vous redirigera vers la version la plus récente du fournisseur SQL ServerSQL Server Native Client OLE DB.)(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  

L’exemple suivant crée une connexion ad hoc avec une feuille de calcul Excel au format de document Word 1997 - 2003.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$] ;  

 Voir aussiSee Also

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