Linee guida per l'utilizzo di query distribuite
Data aggiornamento: 17 luglio 2006
Se il provider supporta le interfacce OLE DB necessarie, è possibile utilizzare tutte le classi di istruzioni Transact-SQL indicate in questo argomento.
Istruzioni Transact-SQL
Di seguito è riportato un elenco dei subset del linguaggio Transact-SQL consentiti per le tabelle remote a cui si accede tramite nomi di server collegati o nomi ad hoc:
- Sono consentite tutte le query formulate in base alla sintassi standard SELECT select_list clausola FROM clausola WHERE. La clausola INTO new_table_name dell'istruzione SELECT non è consentita se new_table_name fa riferimento a una tabella remota.
- Nelle istruzioni SELECT, INSERT, UPDATE e DELETE non è consentito qualificare le colonne di tabelle remote con un nome di tabella composto da una o quattro parti. Alle tabelle remote deve essere assegnato un alias nella clausola FROM e il nome di alias deve essere utilizzato per qualificare il nome di colonna.
- Non è possibile eseguire query su tabelle che contengono colonne xml, anche se la query accede alle colonne non xml della tabella.
- Quando si specifica una colonna LOB (Large Object) di una tabella remota come un elemento di select_list di un'istruzione SELECT, tale istruzione non può includere una clausola ORDER BY.
- I predicati IS NULL e IS NOT NULL non possono fare riferimento a colonne LOB di una tabella remota.
- Non è possibile utilizzare l'istruzione GROUP BY ALL in una query distribuita che include una clausola WHERE. L'istruzione è supportata quando la clausola ALL viene omessa.
- È possibile utilizzare le istruzioni INSERT su tabelle remote solo se il provider soddisfa i requisiti OLE DB relativi alle istruzioni INSERT. Per ulteriori informazioni, vedere Requisiti relativi all'istruzione INSERT per i provider OLE DB.
- Non è possibile inserire costanti NULL in una colonna timestamp tramite una query distribuita.
- $IDENTITY e $ROWGUIDCOL non sono supportate con le query distribuite. Non è possibile inserire valori espliciti nelle colonne Identity di tabelle remote.
- È possibile utilizzare le istruzioni UPDATE e DELETE su tabelle remote solo se il provider soddisfa i requisiti dell'interfaccia OLE DB per la tabella specificata. Per ulteriori informazioni, vedere Requisiti relativi alle istruzioni UPDATE e DELETE per i provider OLE DB.
- È possibile aggiornare o eliminare una tabella remota utilizzando un cursore definito in una query distribuita quando la tabella remota viene specificata nell'istruzione UPDATE o DELETE (UPDATE o DELETE remote_table WHERE CURRENT OF cursor_name) se il provider soddisfa le condizioni relative all'aggiornabilità della tabella remota. Per ulteriori informazioni, vedere Utilizzo di cursori con query distribuite.
- Le istruzioni READTEXT, WRITETEXT e UPDATETEXT non sono supportate per le tabelle remote.
- Nelle operazioni di aggiornamento o inserimento non è possibile fare riferimento a colonne contenenti dati di tipo LOB, ad esempio text, ntext o image, se un'istanza del provider è in esecuzione all'esterno del processo di SQL Server (l'opzione del provider AllowInProcess è 0). Per ulteriori informazioni, vedere Configurazione dei provider OLE DB per le query distribuite.
- Le istruzioni DDL (Data Definition Language) quali CREATE, ALTER, o DROP non sono consentite nei server collegati.
- L'istruzione EXECUTE che specifica un comando pass-through è supportata per i server collegati. Questa istruzione consente di eseguire stored procedure su provider diversi da SQL Server.
- Nei server collegati non sono consentite altre operazioni o istruzioni a livello di database.
Altre linee guida
Di seguito sono riportate alcune restrizioni e linee guida aggiuntive:
- I cursori STATIC o INSENSITIVE possono fare riferimento a tabelle remote. I cursori KEYSET possono fare riferimento a tabelle remote se il provider OLE DB soddisfa requisiti specifici. Per ulteriori informazioni su tali requisiti, vedere Requisiti relativi ai cursori gestiti da keyset per i provider OLE DB. Nessun altro tipo di cursore può fare riferimento a tabelle remote.
- Le stored procedure sono supportate solo per le origini dei dati di SQL Server.
- Una connessione è in grado di eseguire query distribuite solo se le relative opzioni ANSI_NULLS e ANSI_WARNINGS sono impostate su ON. Per ulteriori informazioni, vedere SET ANSI_DEFAULTS (Transact-SQL).
Vedere anche
Concetti
Utilizzo delle transazioni con le query distribuite
Mapping dei tipi di dati con le query distribuite
Query distribuite
Altre risorse
SELECT (Transact-SQL)
EXECUTE (Transact-SQL)
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
17 luglio 2006 |
|