Sqlserver2005 e viste

mercoledì 25 ottobre 2006 - 09.20

totti240282 Profilo | Guru

Sto cominciando(nel poco tempo che ho) ad studiarmi le viste.
chi gentilmente a grandi linee mi può spiegare a cosa sto andando in contro e a cosa servono ???.

se tramite una vista prendo n colonne da n tabelle poi aggiornando la vista ,in automatico sqlserver aggiornerà tutte le tabelle o devo fare delle query separate come al solito ???
C'è solo un capitano !!!!!!

lbenaglia Profilo | Guru

>Sto cominciando(nel poco tempo che ho) ad studiarmi le viste.
>chi gentilmente a grandi linee mi può spiegare a cosa sto andando
>in contro e a cosa servono ???.
leggi questo post:
http://groups.google.it/group/microsoft.public.it.sql/msg/3f6298c5363ac147

>se tramite una vista prendo n colonne da n tabelle poi aggiornando
>la vista ,in automatico sqlserver aggiornerà tutte le tabelle
>o devo fare delle query separate come al solito ???
Una vista permette di aggiornare 1 sola tabella alla volta, altrimenti verrà scatenata una eccezione.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

alx_81 Profilo | Guru

Ciao totti240282

>Sto cominciando(nel poco tempo che ho) ad studiarmi le viste.
>chi gentilmente a grandi linee mi può spiegare a cosa sto andando
>in contro e a cosa servono ???.

Dunque, a grandi linee una vista è una tabella virtuale, ovvero una centralizzazione di colonne e righe prese da più tabelle qua e là. Una vista è comunque simile ad una tabella, ma a differenza di essa, se non opportunamente indicizzata, non è salvata da nessuna parte sul db (solo la query descritta viene salvata). Viene richiamata solamente referenziando le tabelle che la costituiscono.

>
>se tramite una vista prendo n colonne da n tabelle poi aggiornando
>la vista ,in automatico sqlserver aggiornerà tutte le tabelle
>o devo fare delle query separate come al solito ???

Ci sono alcune considerazioni da fare per la modifica dei valori tramite la vista. Per effettuare modifiche ai dati seguire le seguenti linee guida (da MSDN):

- Tutte le modifiche, incluse le istruzioni UPDATE, INSERT e DELETE, devono fare riferimento a colonne di una sola tabella di base.
- Le colonne che vengono modificate nella vista devono fare riferimento direttamente ai dati sottostanti nelle colonne della tabella. Non
possono essere derivate in altro modo, ad esempio tramite:
Una funzione di aggregazione, ovvero AVG, COUNT, SUM, MIN, MAX, GROUPING, STDEV, STDEVP, VAR e VARP.
Un calcolo. Non è possibile calcolare la colonna in base a un'espressione che utilizza altre colonne. Le colonne formate
utilizzando operatori sugli insiemi, ovvero UNION, UNION ALL, CROSSJOIN, EXCEPT e INTERSECT, equivalgono a un calcolo
e non sono pertanto aggiornabili.

- Le colonne che vengono modificate non possono essere interessate da clausole GROUP BY, HAVING o DISTINCT.
- Non è possibile utilizzare la clausola TOP nell'istruzione select_statement della vista quando si utilizza anche WITH CHECK OPTION.

Se vuoi approfondire, guarda questo link:

Modifica dei dati tramite le viste
http://msdn2.microsoft.com/it-it/library/ms180800.aspx

Ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

totti240282 Profilo | Guru

è proprio quello che stavo leggendo...ok grazie a tutti...non è quello che mi aspettavo
C'è solo un capitano !!!!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5