26 messaggi dal 01 agosto 2006
Ciao a tutti.
Piccolo quesito:
Ho una tabella semplice del tipo:

TipoFestivita ([CodTipoFestivita] varchar(3) Chive primaria, [Descrizione] varchar(50), [Ord] int)

Poi ho fatto una vista V_TipoFestivita con la sequente query:

SELECT TOP (100) PERCENT CodTipoFestivita, Descrizione, Ord
FROM dbo.TipoFestivita
ORDER BY Ord

Se mando in esequzione la query mi da il risultato correttamente ordinata per il campo [Ord].

Se, invece, mando in esecuzione la vista (SELECT * FROM V_TipoFestivita), il risultato non è ordinato, è come se non avessi messo l'ORDER BY nella vista.

Uso SqlServer 2008 express edition....

Perchè?????
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
bootes wrote:
Ciao a tutti.
Piccolo quesito:
Ho una tabella semplice del tipo:

TipoFestivita ([CodTipoFestivita] varchar(3) Chive primaria, [Descrizione] varchar(50), [Ord] int)

Poi ho fatto una vista V_TipoFestivita con la sequente query:
SELECT TOP (100) PERCENT CodTipoFestivita, Descrizione, Ord FROM dbo.TipoFestivita
ORDER BY Ord

Se mando in esequzione la query mi da il risultato correttamente ordinata per il campo [Ord].

Se, invece, mando in esecuzione la vista (SELECT * FROM
V_TipoFestivita), il risultato non è ordinato, è come se non avessi messo l'ORDER BY nella vista.

Uso SqlServer 2008 express edition....

Perchè?????

tecnicamente e' un errore semantico da parte tua..
una "vista" e', a tutti gli effetti, parificabile ad una tabella, ed una tabella non e' mai ordinata.. e' solamente l'insieme di tutte le righe che la compongono.. quindi e' semanticamente errato definire una vista come tu hai provveduto, tanto piu' se se, come spesso succede, tu poi eventualmente scrivi
SELECT ... FROM vista ORDER BY altra_colonna;
che a tutti gli effetti comporterebbe una doppia elaborazione di ordinamento.. operazione sinceramente evitabile e penosamente (visto che doppia) pesante.. l'ordinamento dovrebbe essere eseguito solo dal chiamante finale..
al di la' di cio', forse
http://cf-bill.blogspot.com/2007/01/sql-server-order-view.html puo' aiutarti anche se, come spero, sempre piu' spesso gli ingegneri Microsoft stanno sempre piu' spesso rinunciando alla compatibilita' con il passato per abbraciare finalmente lo standard ANSI/ISO..
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
26 messaggi dal 01 agosto 2006
Giustissima osservazione...

Vabbeh!!!
Allora a mali estremi, estremi rimedi...
Anche se sicuramente non siete d'accordo, lo risolvo in questo modo:
Faccio una funzione con valori in tabella con istruzioni multiple che mi ristituisce la tabella ordinata e poi tratto la funzione come una vista...


Lo so che dovrei fare l'ordinamento solo quando vado a recuperare il dato, ma se non faccio così, ogni volta che nella mia applicazione devo richiamare quella tabella mi devo ricordare di ordinarla.

Così, invece, lo faccio una volta per tutte su sqlserver e basta.

Ciao e grazie per la risposta.
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
bootes wrote:
....
Così, invece, lo faccio una volta per tutte su sqlserver e basta.

S B A G L I A T O !!
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
26 messaggi dal 01 agosto 2006
Effettivamente, pensandoci meglio, la soluzione è pessima... In questo finesettimana sono rinsavito

Questa (diciamo così) esigenza è nata perché, utilizzando entity framework, non vorrei far vedere la proprieta "Ord" all'interno della mia classe V_TipoFestivita.
Mi sapete dire se posso fare, almeno, l'ordinamento all'interno dell'entity framework senza che utilizzo la proprietà "Ord" della classe (insomma... senza fare ".OrderBy(p=>p.Ord)"?

Grazie e a presto.
1.976 messaggi dal 27 luglio 2005
Contributi
puo' darsi
ma forse ti conviene chiedere in altro forum piu' legato "alle porcherie DEV  " e non sistemiche come questo

a parte gli scherzi, penso sicuramente di si in quanto Linq di suo consente ordinamenti direttamente legati alla semantica degli attributi ma, sicuramente in altro forum trovi maggior supporto rispetto a questa parte della domanda..
saluti ed in bocca al lupo

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
26 messaggi dal 01 agosto 2006
Grande Andrea...
Grazie e a presto per altri problemi su sql server...

Bye bye!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.