Utilizzo di query pass-through come tabelle
In SQL Server 2005 le query pass-through vengono inviate a un'origine dei dati OLE DB come stringhe di query non interpretate. Le query devono essere formulate con una sintassi supportata dall'origine dei dati OLE DB. Un'istruzione Transact-SQL utilizza i risultati di una query pass-through come se si trattasse di un normale riferimento a una tabella.
Per generare un set di righe da un provider OLE DB è possibile procedere in due modi:
- Fare riferimento a un oggetto dell'origine dei dati che il provider possa esporre come set di righe in formato di tabella. Questa caratteristica è supportata da tutti i provider.
- Inviare al provider un comando di cui il provider stesso possa elaborare ed esporre i risultati come set di righe. Questa caratteristica richiede che il provider supporti l'oggetto OLE DB Command e le relative interfacce obbligatorie.
Se un provider supporta l'oggetto Command, per inviare comandi al provider è possibile utilizzare le funzioni Transact-SQL seguenti, denominate query pass-through:
- Funzione OPENQUERY, che consente di inviare una stringa di comando a un'origine dei dati OLE DB specificando il nome di un server collegato.
- Funzione OPENROWSET e funzione OPENDATASOURCE, che supportano l'invio di una stringa di comando a un'origine dei dati OLE DB. Per fare riferimento al set di righe risultante è possibile specificare un nome ad hoc.
OPENROWSET e OPENQUERY supportano le query pass-through nelle quali la stringa di query contiene la chiamata a una stored procedure solo se la query ha una delle caratteristiche seguenti:
- Esegue un'unica istruzione SELECT statica.
- Non utilizza istruzioni EXECUTE dinamiche.
- Non esegue operazioni di modifica dei dati.
La specifica OLE DB non definisce un unico linguaggio di comando da utilizzare per tutti i provider OLE DB. I provider OLE DB possono supportare qualsiasi linguaggio di comando correlato ai dati esposti. In generale i provider OLE DB che espongono i dati in database relazionali supportano il linguaggio SQL. Gli altri tipi di provider, ad esempio quelli che espongono i dati in un file di posta elettronica o in una directory di rete, in genere supportano un linguaggio diverso.
Vedere anche
Concetti
Query distribuite
Accesso a dati esterni
Altre risorse
FROM (Transact-SQL)
OPENDATASOURCE (Transact-SQL)
OPENQUERY (Transact-SQL)
OPENROWSET (Transact-SQL)