2010-04-09 3 views
0

Я создал простой вид, состоящий из 3 таблиц в SQL.SQL. Сортировка по полю

Щелкнув правой кнопкой мыши и выбрав «Дизайн» в таблице проводника объектов, я изменил свой пользовательский вид. Я просто добавил sortby asc в поле.

Проблема заключается в том, что изменения не отражаются во внешнем виде. После сохранения вида и выбора Open view сортировка не отображается на выходе.

Итак, что здесь происходит?

ответ

3

Технически можно испечь сортировку в VIEW, но это очень обескураживает. Вместо этого следует применять то при выборе с точки зрения, как так:

Select ... 
From MyView 
Order By SortByCol ASC 

Если вы действительно хотите знать (но опять же, я настоятельно рекомендовал бы против этого), вы можете использовать TOP команду, чтобы обойти ограничения сортировки в представлении:

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

Обычно, виды не могут быть отсортированы.

(Как уже упоминалось другие, есть хак, чтобы сделать это, но так как вы используете визуальный конструктор запросов, а не написание определение представления в SQL, это, вероятно, трудно осуществить это хак.)

Вы Ждут» Фактически «изменить» ваш вид, вы только изменили инструкцию SELECT, которую использовал EM, чтобы выбрать из ваш вид. Настройки сортировки не сохраняются в определении представления.

Когда вы закрываете вкладку, EM не запоминает ваши предпочтения для этого вида, поэтому, когда вы снова открываете представление, оно выходит в любом порядке, решаемом SQL Server.

0

кажется:

Существует ограничение на SELECT, положений в определении представления в SQL Server 2000, SQL 2005 и SQL 2008. CREATE VIEW заявление не может включать в себя ORDER BY, если нет также положения TOP в выберите список инструкции SELECT. Предложение ORDER BY используется только для определения строк, возвращаемых предложением TOP в определении представления. Предложение ORDER BY не гарантирует упорядоченные результаты при запросе представления, если ORDER BY также не указан в самом запросе.

Существует также исправление, которое необходимо применить. После этого вы должны использовать Top 100%, чтобы убедиться, что порядок работает.

HTH