Pergunta

Eu criei uma visão simples, composta por 3 tabelas no SQL.

Ao clicar com o botão direito do mouse e selecionando design, na tabela de objeto Explorer, modifiquei minha visualização personalizada. Acabei de adicionar Sortby ASC em um campo.

O problema é que as alterações não são refletidas na saída da visão. Depois de salvar a visualização e selecionar o Open View, a classificação não é exibida na saída.

Então, o que está acontecendo aqui?

Foi útil?

Solução

Tecnicamente, é possível assar classificação em um VIEW Mas é altamente desencorajado. Em vez disso, você deve aplicar a classificação enquanto seleciona da visualização como assim:

Select ...
From MyView
Order By SortByCol ASC

Se você realmente queria saber (mas, novamente, eu recomendo fortemente contra isso), você pode usar o comando principal para contornar a limitação de classificar na vista:

Select TOP 100 PERCENT * Col1, Col2....
From Table1
Order By SortByCol ASC

Outras dicas

Parece :

Há uma restrição nas cláusulas selecionadas em uma definição de visualização no SQL Server 2000, SQL 2005 e SQL 2008. Uma instrução CREATE não pode incluir a cláusula de ordem por ordem, a menos que haja também uma cláusula superior na lista de seleção da instrução SELECT. A cláusula Ordem By é usada apenas para determinar as linhas que são retornadas pela cláusula superior na definição de exibição. A cláusula Ordem By não garante resultados ordenados quando a visualização é consultada, a menos que a ordem por também seja especificada na própria consulta.

Há também um hotfix que precisa ser aplicado. Depois disso, você deve usar 100% superior para garantir que o pedido por obras.

Hth

Geralmente, As visões não podem ser classificadas.

(Como outros mencionaram, há um hack para fazê -lo, mas como você está usando um designer de consulta visual em vez de escrever sua definição de visualização no SQL, provavelmente é difícil implementar esse hack.)

Na verdade, você não "modificou" sua visão, você apenas mudou a instrução SELECT que EM estava usando para selecionar a partir de sua visão. As configurações de classificação não são retidas na definição de visualização.

Quando você fecha a guia, o EM não se lembra da sua preferência de classificação por essa visualização; portanto, quando você abre a visualização novamente, ele será lançado em qualquer ordem que o SQL Server decidir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top