Modifica di dati nelle viste partizionate
Data aggiornamento: 5 dicembre 2005
Se una vista partizionata non è aggiornabile, può fungere solo da copia in sola lettura della tabella originale. Una vista partizionata aggiornabile può includere tutte le caratteristiche della tabella originale.
Un vista è considerata una vista partizionata aggiornabile se rappresenta un set di istruzioni SELECT i cui singoli set di risultati sono combinati in uno tramite l'istruzione UNION ALL. Ogni istruzione SELECT fa riferimento a una tabella di base SQL Server. La tabella può essere una tabella locale o una tabella collegata a cui si fa riferimento utilizzando un nome in quattro parti, la funzione OPENROWSET o la funzione OPENDATASOURCE. Non è possibile utilizzare una funzione OPENDATASOURCE o OPENROWSET che specifichi una query pass-through.
Le istruzioni di modifica dei dati che fanno riferimento alla vista, inoltre, devono rispettare le regole definite per le istruzioni INSERT, UPDATE e DELETE.
Se la vista partizionata viene distribuita tra server, evitare l'utilizzo di trigger o azioni a catena nelle tabelle di base. Un trigger o un'azione a catena può provocare modifiche ai dati sottostanti che possono influire sulla definizione della vista.
Le viste partizionate distribuite possono essere aggiornate solo se l'utente dispone dell'autorizzazione CONTROL, ALTER, TAKE OWNERSHIP o VIEW DEFINITION su tutte le tabelle sottostanti. Per ulteriori informazioni, vedere Risoluzione dei problemi relativi alla visibilità dei metadati delle viste partizionate distribuite.
[!NOTA] È possibile modificare dati tramite una vista partizionata distribuita solo se si installa Microsoft SQL Server 2005 Enterprise Edition o Microsoft SQL Server 2005 Developer Edition. È tuttavia possibile modificare dati tramite una vista partizionata locale in qualsiasi edizione di SQL Server 2005.
Istruzioni INSERT
Le istruzioni INSERT consentono di aggiungere dati alle tabelle membro tramite la vista partizionata. Le istruzioni INSERT devono rispettare le regole seguenti:
- Tutte le colonne devono essere incluse nell'istruzione INSERT anche se la colonna può essere NULL nella tabella di base o include un vincolo DEFAULT definito nella tabella di base.
- La parola chiave DEFAULT non può essere specificata nella clausola VALUES dell'istruzione INSERT.
- Le istruzioni INSERT devono fornire un valore che soddisfi la logica del vincolo CHECK definito nella colonna di partizionamento per una delle tabelle membro.
- Le istruzioni INSERT non sono consentite se una tabella membro contiene una colonna con una proprietà Identity.
- Le istruzioni INSERT non sono consentite se una tabella membro contiene una colonna timestamp.
- Le istruzioni INSERT non sono consentite se è presente un self join con la stessa vista o una qualsiasi delle tabelle membro.
Istruzioni UPDATE
Le istruzioni UPDATE consentono di modificare dati in una o più delle tabelle membro tramite la vista partizionata. Le istruzioni UPDATE devono rispettare le regole seguenti:
- Nelle istruzioni UPDATE non è possibile specificare la parola chiave DEFAULT come valore nella clausola SET, anche se alla colonna è associato un valore DEFAULT definito nella tabella membro corrispondente.
- Il valore di una colonna con una proprietà Identity non può essere modificato. È tuttavia possibile aggiornare le altre colonne.
- Non è possibile modificare il valore di un vincolo PRIMARY KEY se la colonna contiene dati di tipo text, image o ntext.
- Gli aggiornamenti non sono consentiti se una tabella di base contiene una colonna timestamp.
- Gli aggiornamenti non sono consentiti se è presente un self join con la stessa vista o una qualsiasi delle tabelle membro.
Istruzioni DELETE
Le istruzioni DELETE consentono di rimuovere dati in una o più delle tabelle membro tramite la vista partizionata. Le istruzioni DELETE non sono consentite se è presente un self join con la stessa vista o una qualsiasi delle tabelle membro.
Vedere anche
Concetti
Implementazione di federazioni di server di database
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
5 dicembre 2005 |
|