none
Dati risultanti da un vista non ordinati RRS feed

  • Domanda

  • Buongiorno a tutti.

    Ho un dubbio sulla gestione dei dati con una vista, faccio un esempio:

    creo una vista molto semplice e la salvo, tipo

    SELECT     TOP (100) PERCENT id, id_esterno, datainizio, datafine
    FROM         dbo.T_Test
    ORDER BY id_esterno, datainizio

    La mia domanda è: se eseguo la vista all'interno dell'editor delle query i dati risultanti sono perfettamente ordinati così come ci si aspetta, se invece da management studio  scelgo seleziona o modifica righe, il set di dati risultanti non ha alcun ordinamento e vengono visualizzati così come sono stati inseriti. E' un comprtamento corretto?

    grazie

    lunedì 21 maggio 2012 07:45

Risposte

  • Ciao Valdo,

    la combinazione TOP/ORDER BY specificata per una vista NON garantisce che i dati siano presentati in quell'ordine. Dal BOL del comando CREATE VIEW: "The ORDER BY clause is used only to determine the rows that are returned by the TOP or OFFSET clause in the view definition. The ORDER BY clause does not guarantee ordered results when the view is queried, unless ORDER BY is also specified in the query itself."

    Ti segnalo questo post di Pinal Dave (e il commento di <cite>Jeremiah Peschka</cite>) dove si spiega questo comportamento.


    Danilo Dominici MCP MCDBA MCITP MCSE MCAD Questo post è fornito "così com'è". Non conferisce garanzie o diritti di alcun tipo. Ricorda di usare la funzione "segna come risposta" per i post che ti hanno aiutato a risolvere il problema e "deseleziona come risposta" quando le risposte segnate non sono effettivamente utili. Questo è particolarmente utile per altri utenti che leggono il thread, alla ricerca di soluzioni a problemi similari. ENG: This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click "Mark as Answer" on the post that helps you, and to click "Unmark as Answer" if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    lunedì 21 maggio 2012 11:04

Tutte le risposte

  • Accertati di aver lanciato questa query anche da Management Studio.

    Matteo Migliore

    Bloghttp://blogs.ugidotnet.org/matteomigliore
    Twitterhttp://twitter.com/matteomigliore
    CodePlex

    lunedì 21 maggio 2012 08:04
  • Le query lanciate per modifica o selezione da Management Studio sono:

    "SELECT     TOP (200) id, id_esterno, datainizio, datafine
     FROM         V_Test"

    e

    "SELECT TOP 1000 [id]
          ,[id_esterno]
          ,[datainizio]
          ,[datafine]
      FROM [db-web-app].[dbo].[V_Test]"

    eseguendole sulla vista V_Test salvata i dati non dovrebbero essere comunque ordinati ?

    lunedì 21 maggio 2012 08:15
  • Ciao Valdo,

    la combinazione TOP/ORDER BY specificata per una vista NON garantisce che i dati siano presentati in quell'ordine. Dal BOL del comando CREATE VIEW: "The ORDER BY clause is used only to determine the rows that are returned by the TOP or OFFSET clause in the view definition. The ORDER BY clause does not guarantee ordered results when the view is queried, unless ORDER BY is also specified in the query itself."

    Ti segnalo questo post di Pinal Dave (e il commento di <cite>Jeremiah Peschka</cite>) dove si spiega questo comportamento.


    Danilo Dominici MCP MCDBA MCITP MCSE MCAD Questo post è fornito "così com'è". Non conferisce garanzie o diritti di alcun tipo. Ricorda di usare la funzione "segna come risposta" per i post che ti hanno aiutato a risolvere il problema e "deseleziona come risposta" quando le risposte segnate non sono effettivamente utili. Questo è particolarmente utile per altri utenti che leggono il thread, alla ricerca di soluzioni a problemi similari. ENG: This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click "Mark as Answer" on the post that helps you, and to click "Unmark as Answer" if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    lunedì 21 maggio 2012 11:04
  • Ok. Capito. Grazie.

    ciao

    martedì 22 maggio 2012 07:07