Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Sql2008, View, Order by  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
Перешли с 200 на 2008. Теперь ищем где чего не работает.
Один из глюков. Имеется такой VIEW:
select top 100 percent f1, f2 from table order by f1

Когда делаем из него Select - сортировка почему то исчезает :(

Как это исправить? Или придется во всех программах искать и писать Order by ?
29 сен 11, 10:29    [11352899]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Glory
Member

Откуда:
Сообщений: 104751
Samir
Когда делаем из него Select - сортировка почему то исчезает :(

Как это исправить? Или придется во всех программах искать и писать Order by ?

BOL - ORDER BY

When ORDER BY is used in the definition of a view, inline function, derived table, or subquery, the clause is used only to determine the rows returned by the TOP clause. The ORDER BY clause does not guarantee ordered results when these constructs are queried, unless ORDER BY is also specified in the query itself.
29 сен 11, 10:32    [11352921]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31993
Samir
Когда делаем из него Select - сортировка почему то исчезает :(

Как это исправить? Или придется во всех программах искать и писать Order by ?
Сортировки работают только в запросах.

Странно, что так запроектировали систему.
29 сен 11, 10:33    [11352927]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Samir,

Хе-хе, классика! Это был "грязный хак" так писать, по сути недокументированная фича, вот она и изменилась внезапно. Так что, пишите сортировку во внешней ко вьюхе выборке.
29 сен 11, 10:34    [11352932]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
Какой смысл тогда разрешать во вьюшке писать сортировку?

На 2000 все прекрасно работало. Теперь надо по всем проектам бегать и искать :(
29 сен 11, 10:50    [11353053]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
J.d
Member

Откуда: Москва
Сообщений: 691
так он там для определения набора записей служит
29 сен 11, 10:52    [11353082]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Glory
Member

Откуда:
Сообщений: 104751
Samir
Какой смысл тогда разрешать во вьюшке писать сортировку?

order разрешен для отбора _части_ записей по TOP
А не для автоматического упорядочивания всех записей
29 сен 11, 10:56    [11353107]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
Проблема решена удалением слова PERCENT и заменой 100 на 100000
29 сен 11, 11:09    [11353237]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Glory
Member

Откуда:
Сообщений: 104751
Samir
Проблема решена удалением слова PERCENT и заменой 100 на 100000

А если запрос вернет больше 100 000 записей ?
29 сен 11, 11:10    [11353245]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Samir,

главное, чтоб в один прекрасный день, записей не стало больше 100000 =)
29 сен 11, 11:12    [11353257]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
iljy
Member

Откуда:
Сообщений: 8711
Samir,

не зарастет тропа киргизских комсомольцев! Мы по прежнему изобретательно создаем трудности, чтобы с блеском их преодолевать
29 сен 11, 11:20    [11353336]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
С переходом на 2008 появилось много проблем, которые надо срочно решать.
Мне сейчас надо сделать так, чтоб все заработало.

А потом, когда станет поспокойнее - можно будет делать так как надо.

Нет времени сейчас искать в 1000 программах, где используются такие глюки.
29 сен 11, 11:26    [11353389]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Glory
Member

Откуда:
Сообщений: 104751
Samir
С переходом на 2008 появилось много проблем, которые надо срочно решать.

А переход происходил без тестирования что ли ?
Раз так взяли и поменяли версию ?
29 сен 11, 11:29    [11353416]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
Тестировали конечно, но не все видать протестировали.

Еще вопрос. Раньше достаточно было дать доступ к вьюшке на селект, теперь и на таблицу надо давать доступ?
29 сен 11, 11:34    [11353463]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Glory
Member

Откуда:
Сообщений: 104751
Samir
Раньше достаточно было дать доступ к вьюшке на селект, теперь и на таблицу надо давать доступ?

Еслиь вопрос про цепочки наследования, то нет
29 сен 11, 11:35    [11353477]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Samir
С переходом на 2008 появилось много проблем, которые надо срочно решать.
Мне сейчас надо сделать так, чтоб все заработало.

А потом, когда станет поспокойнее - можно будет делать так как надо.

Нет времени сейчас искать в 1000 программах, где используются такие глюки.

Как говорится, нет ничего более постоянного чем временное =) Так что вы хотя б число побольше поставьте...
+
п.с.
Я когда-то ради спортивного интереса пытался заставить вьюку возвращать отсортированные данные, прокатил вот такой финт "select top (select 100) percent val from dbo.NotOrderedTable order by val" - но это опять грязный хак и со следующей версии может поменятьься так же как и сейчас...
29 сен 11, 11:41    [11353540]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
Спасибо всем. Вроде бы все работает пока :)
29 сен 11, 11:48    [11353626]     Ответить | Цитировать Сообщить модератору
 Re: Sql2008, View, Order by  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
А с числом там все в порядке, более 1000 никогда не будет. Спасибо за совет!
29 сен 11, 11:49    [11353641]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить