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

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure (solo Istanza gestita) noAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Restituisce informazioni sulla connessione ad hoc all'interno di un nome di oggetto in quattro parti, senza utilizzare il nome di un server collegato.Provides ad hoc connection information as part of a four-part object name without using a linked server name.

icona di collegamentoConvenzioni della sintassi Transact-SQLlink icon Transact-SQL Syntax Conventions

SintassiSyntax

  
OPENDATASOURCE ( provider_name, init_string )  

ArgomentiArguments

provider_nameprovider_name
Nome registrato come valore PROGID del provider OLE DB utilizzato per l'accesso all'origine dati.Is the name registered as the PROGID of the OLE DB provider used to access the data source. provider_name è un tipo di dati char e non prevede alcun valore predefinito.provider_name is a char data type, with no default value.

init_stringinit_string
Stringa di connessione passata all'interfaccia IDataInitialize del provider di destinazione.Is the connection string passed to the IDataInitialize interface of the destination provider. La sintassi della stringa del provider si basa su coppie chiave/valore separate da punti e virgola, ad esempio: ' keyword1=value ; keyword2=value ' .The provider string syntax is based on keyword-value pairs separated by semicolons, such as: 'keyword1=value ; keyword2=value'.

Per informazioni sulle coppie parola chiave/valore specifiche supportate nel provider, vedere MicrosoftMicrosoft Data Access SDK.For specific keyword-value pairs supported on the provider, see the MicrosoftMicrosoft Data Access SDK. In questa documentazione è definita la sintassi di base.This documentation defines the basic syntax. Nella tabella seguente sono elencate le parole chiave di più frequente utilizzo nell'argomento init_string.The following table lists the most frequently used keywords in the init_string argument.

Parola chiaveKeyword Proprietà OLE DBOLE DB property Valori validi e descrizioneValid values and description
origine datiData Source DBPROP_INIT_DATASOURCEDBPROP_INIT_DATASOURCE Nome dell'origine dei dati a cui connettersi.Name of the data source to connect to. Viene interpretato in modo diverso nei vari provider.Different providers interpret this in different ways. Per il provider OLE DB per SQL ServerSQL Server Native Client, indica il nome del server.For SQL ServerSQL Server Native Client OLE DB provider, this indicates the name of the server. Per il provider OLE DB di Jet indica il percorso completo del file mdb o xls.For Jet OLE DB provider, this indicates the full path of the .mdb file or .xls file.
PercorsoLocation DBPROP_INIT_LOCATIONDBPROP_INIT_LOCATION Posizione del database a cui connettersi.Location of the database to connect to.
Extended PropertiesExtended Properties DBPROP_INIT_PROVIDERSTRINGDBPROP_INIT_PROVIDERSTRING Stringa di connessione specifica del provider.The provider-specific connect-string.
Connect timeoutConnect timeout DBPROP_INIT_TIMEOUTDBPROP_INIT_TIMEOUT Valore di timeout trascorso il quale il tentativo di connessione viene considerato non riuscito.Time out value after which the connection try fails.
ID utenteUser ID DBPROP_AUTH_USERIDDBPROP_AUTH_USERID ID utente da utilizzare per la connessione.User ID to be used for the connection.
PasswordPassword DBPROP_AUTH_PASSWORDDBPROP_AUTH_PASSWORD Password da utilizzare per la connessione.Password to be used for the connection.
CatalogoCatalog DBPROP_INIT_CATALOGDBPROP_INIT_CATALOG Nome del catalogo iniziale o predefinito nella connessione all'origine dei dati.The name of the initial or default catalog when connecting to the data source.
Sicurezza integrataIntegrated Security DBPROP_AUTH_INTEGRATEDDBPROP_AUTH_INTEGRATED SSPI per specificare l'autenticazione di Windows.SSPI, to specify Windows Authentication

RemarksRemarks

È possibile utilizzare OPENDATASOURCE per accedere ai dati remoti dalle origini dei dati OLE DB solo quando l'opzione del Registro di sistema DisallowAdhocAccess è impostata esplicitamente su 0 per il provider specificato e l'opzione di configurazione avanzata Ad Hoc Distributed Queries è abilitata.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. Quando queste opzioni non vengono impostate, il comportamento predefinito non consente l'accesso ad hoc.When these options are not set, the default behavior does not allow for ad hoc access.

La funzione OPENDATASOURCE può essere utilizzata nella stessa posizione della sintassi Transact-SQLTransact-SQL in cui è consentito specificare un nome di server collegato.The OPENDATASOURCE function can be used in the same Transact-SQLTransact-SQL syntax locations as a linked-server name. È pertanto possibile utilizzarla come prima parte di un nome composto da quattro parti che fa riferimento a un nome di tabella o vista in un'istruzione SELECT, INSERT, UPDATE o DELETE oppure a una stored procedure remota in un'istruzione 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. Durante l'esecuzione di stored procedure remote la funzione OPENDATASOURCE deve fare riferimento a un'altra istanza di SQL ServerSQL Server.When executing remote stored procedures, OPENDATASOURCE should refer to another instance of SQL ServerSQL Server. La funzione non accetta variabili come argomenti.OPENDATASOURCE does not accept variables for its arguments.

In modo analogo alla funzione OPENROWSET, è consigliabile utilizzare la funzione OPENDATASOURCE solo per fare riferimento a origini dei dati OLE DB a cui si accede raramente.Like the OPENROWSET function, OPENDATASOURCE should only reference OLE DB data sources that are accessed infrequently. Per le origini dei dati a cui si accede con maggiore frequenza definire un server collegato.Define a linked server for any data sources accessed more than several times. Sia OPENDATASOURCE che OPENROWSET non offrono tutte le funzionalità delle definizioni di server collegati, quali la gestione della sicurezza e la possibilità di eseguire query per ottenere informazioni sui cataloghi.Neither OPENDATASOURCE nor OPENROWSET provides all the functionality of linked-server definitions, such as security management and the ability to query catalog information. A ogni chiamata della funzione OPENDATASOURCE è necessario fornire tutte le informazioni di connessione, comprese le password.All connection information, including passwords, must be provided every time that OPENDATASOURCE is called.

Importante

L'autenticazione di Windows offre una sicurezza decisamente maggiore rispetto all'autenticazione di SQL ServerSQL Server.Windows Authentication is much more secure than SQL ServerSQL Server Authentication. Quando possibile, utilizzare l'autenticazione di Windows.You should use Windows Authentication whenever possible. OPENDATASOURCE non deve essere utilizzata con password esplicite nella stringa di connessione.OPENDATASOURCE should not be used with explicit passwords in the connection string.

I requisiti relativi alla connessione per ogni provider sono analoghi a quelli per i parametri utilizzati durante la creazione di server collegati.The connection requirements for each provider are similar to the requirements for those parameters when creating linked servers. I dettagli per molti provider di utilizzo comune sono disponibili nell'articolo sp_addlinkedserver (Transact-SQL).The details for many common providers are listed in the article sp_addlinkedserver (Transact-SQL).

Qualsiasi chiamata a OPENDATASOURCE, OPENQUERY o OPENROWSET nella clausola FROM viene valutata separatamente e indipendentemente da qualsiasi altra chiamata a queste funzioni utilizzate come destinazione dell'aggiornamento, anche se alle due chiamate vengono forniti argomenti identici.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. In particolare, le condizioni di filtro o join applicate al risultato di una di tali chiamate non hanno effetto sui risultati dell'altra.In particular, filter or join conditions applied on the result of one of those calls has no effect on the results of the other.

AutorizzazioniPermissions

Qualsiasi utente può eseguire OPENDATASOURCE.Any user can execute OPENDATASOURCE. Le autorizzazioni utilizzate per connettersi al server remoto sono determinate dalla stringa di connessione.The permissions that are used to connect to the remote server are determined from the connection string.

EsempiExamples

Nell'esempio seguente viene creata una connessione ad hoc all'istanza Payroll di SQL ServerSQL Server nel server London e viene eseguita una query sulla tabella 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'utilizzo di SQLNCLI e SQL ServerSQL Server reindirizza alla versione più recente del provider OLE DB per SQL ServerSQL Server Native Client.)(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  

Nell'esempio seguente viene creata una connessione ad hoc a un foglio di calcolo di Excel in formato 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$] ;  

Vedere ancheSee Also

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