Condividi tramite


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

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

17 luglio 2006

Nuovo contenuto:
  • Aggiunta della voce relativa all'impossibilità di eseguire query su tabelle con colonne xml.