Esporta (0) Stampa
Espandi tutto
Questo argomento non è stato ancora valutato - Valuta questo argomento

OPENDATASOURCE (Transact-SQL)

Fornisce informazioni ad hoc sulla connessione, utilizzabili all'interno di un nome di oggetto composto da quattro parti, senza specificare il nome di un server collegato.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL


OPENDATASOURCE ( provider_name, init_string )
provider_name

Nome registrato come valore PROGID del provider OLE DB utilizzato per l'accesso all'origine dati. provider_name è di tipo char e non prevede alcun valore predefinito.

init_string

Stringa di connessione passata all'interfaccia IDataInitialize del provider di destinazione. La sintassi della stringa del provider si basa sulla coppia parola chiave/valore separati dal carattere punto e virgola, ad esempio 'keyword1=value; keyword2=value'.

Per informazioni sulle coppie parola chiave/valore specifiche supportate nel provider, vedere Microsoft Data Access SDK. In questa documentazione è definita la sintassi di base. Nella tabella seguente sono elencate le parole chiave di più frequente utilizzo nell'argomento init_string.

Parola chiave

Proprietà OLE DB

Valori validi e descrizione

Data Source

DBPROP_INIT_DATASOURCE

Nome dell'origine dei dati a cui connettersi. Viene interpretato in modo diverso nei vari provider. Per il provider OLE DB per SQL Server Native Client, indica il nome del server. Per il provider OLE DB di Jet indica il percorso completo del file mdb o xls.

Location

DBPROP_INIT_LOCATION

Posizione del database a cui connettersi.

Extended Properties

DBPROP_INIT_PROVIDERSTRING

Stringa di connessione specifica del provider.

Connect timeout

DBPROP_INIT_TIMEOUT

Intervallo di tempo trascorso il quale il tentativo di connessione viene considerato non riuscito.

User ID

DBPROP_AUTH_USERID

ID utente da utilizzare per la connessione.

Password

DBPROP_AUTH_PASSWORD

Password da utilizzare per la connessione.

Catalog

DBPROP_INIT_CATALOG

Nome del catalogo iniziale o predefinito nella connessione all'origine dei dati.

Integrated Security

DBPROP_AUTH_INTEGRATED

SSPI per specificare l'autenticazione di Windows.

È possibile utilizzare OPENDATASOURCE per accedere ai dati remoti dalle origini 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. Quando queste opzioni non vengono impostate, il comportamento predefinito non consente l'accesso ad hoc.

La funzione OPENDATASOURCE può essere utilizzata nella stessa posizione della sintassi Transact-SQL in cui è consentito specificare un nome di server collegato. È 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. Durante l'esecuzione di stored procedure remote la funzione OPENDATASOURCE deve fare riferimento a un'altra istanza di SQL Server. La funzione non accetta variabili come argomenti.

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. Per le origini dei dati a cui si accede con maggiore frequenza definire un server collegato. 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. A ogni chiamata della funzione OPENDATASOURCE è necessario fornire tutte le informazioni di connessione, comprese le password.

Nota importanteImportante

L'autenticazione di Windows offre una sicurezza decisamente maggiore rispetto all'autenticazione di SQL Server. Quando possibile, utilizzare l'autenticazione di Windows. OPENDATASOURCE non deve essere utilizzata con password esplicite nella stringa di connessione.

I requisiti relativi alla connessione per ogni provider sono analoghi a quelli per i parametri utilizzati durante la creazione di server collegati. I dettagli per molti provider di utilizzo comune vengono elencati nell'argomento 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. In particolare, le condizioni di filtro o di join applicate al risultato di una di tali chiamate non avranno alcun effetto sui risultati dell'altra chiamata.

Qualsiasi utente può eseguire OPENDATASOURCE. Le autorizzazioni utilizzate per connettersi al server remoto sono determinate dalla stringa di connessione.

Nell'esempio seguente viene creata una connessione ad hoc all'istanza Payroll di SQL Server nel server London e viene eseguita una query sulla tabella AdventureWorks2008R2.HumanResources.Employee. L'utilizzo di SQLNCLI e SQL Server comporta il reindirizzamento alla versione più recente del provider OLE DB per SQL Server Native Client.

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

Nell'esempio seguente viene creata una connessione ad hoc a un foglio di calcolo di Excel in formato 1997 - 2003.

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;
Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft. Tutti i diritti riservati.