Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Set ROWCOUNT глючит
|
|||
|---|---|---|---|
|
#18+
Я сегодня обнаружил странное на мой взгляд поведение опции Set ROWCOUNT, может, еще кого заинтересует. скрипт Set ROWCOUNT 10 select ... from ... union all select ... from ... order by 2 desc,3 desc реально выполнялся так: сначала выбираем строки первого селекта, затем второго селекта БЕЗ УЧЕТА СОРТИРОВКИ, затем из множества берем первые 10 строк и их сортируем!! Мне же нужно было сначала сортировать, а потом отсекать первые 10. Интересно, сталкивался ли кто-нибудь с подобной проблемой без UNION ? Довольно сложно смоделировать эту ситуацию (Я создал почти такой же запрос на таблице с кластерным индексом но "неправильному" полю, чтоб сбить сортировку, но он все равно отработал правильно.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2001, 09:52 |
|
||
|
Set ROWCOUNT глючит
|
|||
|---|---|---|---|
|
#18+
Я не понял о чем Вы. Я не знаю как оно "реально выполняется", но если почитать хелп, то там написано: UNION Specifies that multiple result sets are to be combined and returned as a single result set . Т.е. order by 2 desc,3 desc относиться ко всему набору данных. В этом лекго убедиться, если попробывать выполнить такой запрос: select name from sysobjects where type='U' order by name union select name from sysobjects where type='P' order by name order by может быть только один. Set ROWCOUNT здесь совсем не при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2001, 10:49 |
|
||
|
Set ROWCOUNT глючит
|
|||
|---|---|---|---|
|
#18+
ROWCOUNT с order by действительно не работает. Альтернатива - TOP nnn, т.е. только в exec(...) - минус секюрити на процедурах и время компиляции... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2001, 13:13 |
|
||
|
Set ROWCOUNT глючит
|
|||
|---|---|---|---|
|
#18+
Минус не только с секьюрити. Минусов вообще много. Тогда вопрос: для чего вообще ROWCOUNT ? Ограничить набор обрабатываемых столбцов первыми n имеет смысл только при указании порядка. По-моему так. Если же ROWCOUNT для этого не предназначет, то зачем он вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2001, 13:28 |
|
||
|
Set ROWCOUNT глючит
|
|||
|---|---|---|---|
|
#18+
Почему же не работает? Вот такой запрос set rowcount 10 select name from sysobjects where type='S' and name like 'sys[p-x]%' union select name from sysobjects where type='S' and name like 'sys[d-h]%' order by name у меня выдаёт такое: name ------------- sysdepends sysfilegroups sysfiles sysfiles1 sysforeignkeys sysfulltextcatalogs sysfulltextnotify syspermissions sysproperties sysprotects а что по Вашему он должен был выдать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2001, 05:49 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1825228]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 315ms |

| 0 / 0 |
