Utilizzo di cursori con query distribuite
Le query distribuite supportano l'utilizzo dei cursori di tipo insensitive (statici) o gestiti da keyset se il provider supporta la funzionalità OLE DB necessaria. I cursori dinamici o forward-only richiesti tramite query distribuite vengono convertiti in modo implicito in cursori gestiti da keyset.
I cursori gestiti da keyset sono supportati nelle query distribuite se tutte le tabelle locali e remote della query includono una chiave univoca. Per informazioni sui requisiti necessari affinché i cursori gestiti da keyset siano supportati nelle query distribuite, vedere Requisiti relativi ai cursori gestiti da keyset per i provider OLE DB.
Se in una query distribuita è consentito utilizzare un cursore gestito da keyset, è possibile utilizzare il cursore anche per l'aggiornamento di tutte le tabelle remote sottostanti, a condizione che siano soddisfatti i requisiti del provider relativi all'aggiornamento. Per informazioni sui requisiti necessari per l'aggiornamento di tabelle remote, vedere Requisiti relativi alle istruzioni UPDATE e DELETE per i provider OLE DB.
[!NOTA] In SQL Server 2005, le colonne di tipo timestamp sono necessarie per la concorrenza ottimistica se le destinazioni dell'aggiornamento o dell'eliminazione sono remote. Si verifica un errore se è stata specificata la concorrenza ottimistica ma nella tabella remota non è inclusa una colonna di tipo timestamp. In SQL Server 2000, se non esiste una colonna di tipo timestamp, la concorrenza ottimistica non viene mantenuta per l'aggiornamento remoto ma non si verifica alcun errore.
[!NOTA] Per le query distribuite in SQL Server 2005 non è necessario specificare una transazione utente se il livello di isolamento è impostato su REPEATABLE READ o su un valore superiore. In SQL Server 2000 è necessario specificare una transazione utente se il livello di isolamento è impostato su REPEATABLE READ o su un valore superiore.
Vedere anche
Altre risorse
DECLARE CURSOR (Transact-SQL)
Using Cursors