Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
r77 Member Откуда: Краснодар Сообщений: 270 |
Добрый день! Есть группа локальных серверов, делаю SELECT по всем серверам...как отсортировать результат по наименованиям серверов? Спасибо. |
22 ноя 18, 11:44 [21741016] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37198 |
order by |
22 ноя 18, 12:44 [21741155] Ответить | Цитировать Сообщить модератору |
r77 Member Откуда: Краснодар Сообщений: 270 |
Очень смешно! Меня само собой интересует параметр по которому ORDER BY...! |
||
22 ноя 18, 12:52 [21741171] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
ORDER BY [наименованиям серверов] |
||||
22 ноя 18, 12:52 [21741173] Ответить | Цитировать Сообщить модератору |
uaggster Member Откуда: Сообщений: 972 |
)))) По сабжу: Вроде бы никак не отсортировать. И уж точно - не директивой в запросе. Т.к. такое представление - это самодеятельность SSMS. Она открывает тучу коннектов к серверам, складирует результаты от каждого, а потом выводит с меткой сервера каждый отдельный резалтсет в одной таблице. Этот резалтсет не настоящий. Его студия внутри себя создала. И сортировать его, соответственно, тоже она должна. |
||
22 ноя 18, 12:54 [21741177] Ответить | Цитировать Сообщить модератору |
r77 Member Откуда: Краснодар Сообщений: 270 |
возвращается список каждый раз хаотично,не очень удобно, спасибо за ответ, так и думала. |
||||
22 ноя 18, 14:16 [21741342] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8484 |
r77, самое смешное, что имя сервера отображается в первой колонке. Вы какую версию SSMS используете? Установите последнюю, если сервер выше 2012. |
22 ноя 18, 14:46 [21741412] Ответить | Цитировать Сообщить модератору |
r77 Member Откуда: Краснодар Сообщений: 270 |
ох.. мне и нужно отсортировать записи по алфавиту по результатам запроса из первой колонки...название этой колонки [имя сервера]!
2008, спасибо, другую версию я не могу установить и использовать |
||||
22 ноя 18, 15:37 [21741520] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5593 |
можно противоестественным способом - делать проверку на имя сервера и делать нужную паузу полагаю, что студия выводит результат для группы серверов в порядке получения результата от серверов
|
|||||||
22 ноя 18, 15:46 [21741535] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5593 |
опечатка в скрипте : вместо select @delay = '00:00:'+nameдолжно быть select @delay = '00:00:'+seconds |
22 ноя 18, 15:47 [21741540] Ответить | Цитировать Сообщить модератору |
r77 Member Откуда: Краснодар Сообщений: 270 |
благодарю,попробую |
||
22 ноя 18, 16:05 [21741587] Ответить | Цитировать Сообщить модератору |
DaniilSeryi Member Откуда: Сообщений: 1829 |
А добавить в каждый select столбец с именем сервера, к которому сделан запрос, нельзя? |
||
24 ноя 18, 23:39 [21743917] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5593 |
результирующая выборка группового запроса и так содержит сервер (столбец ноль), на котором был выполнен запрос у автора хотелка, чтобы общая выборка была отсортирована по имени сервера |
||||
25 ноя 18, 20:16 [21744254] Ответить | Цитировать Сообщить модератору |
L_argo Member Откуда: Сообщений: 1454 |
Ну или помещайте в Эксель и сортируйте. :) |
||
25 ноя 18, 22:14 [21744291] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
Но автор намёками и пожиманием плеч показывает, что это ему не подходит. Может, нужно сформулировать вопрос поближе к рекомендациям оформления сообщений, то есть привести запрос, текущий результат, и желаемый результат? Или описать задачу подробнее, если это, например поведение какого то стороннего софта, в котором "ничего нельзя менять"?
|
||||||
25 ноя 18, 23:25 [21744344] Ответить | Цитировать Сообщить модератору |
r77 Member Откуда: Краснодар Сообщений: 270 |
Никакой не сторонний софт, студия SQL...я и спрашиваю как отсортировать сразу в результатах запроса...ни в excel, ни еще где-то...естественно можно загрузить в временную таблицу и в excel и еще куда-нибудь - это дополнительные действия, которых хочется избежать. Описать задачу подробнее - либо не делали никогда запрос по группе серверов,поэтому и спрашиваете подробнее... подробнее.... выбираю из контекстного меню группы локальных серверов -> "создать запрос" select * from [БД].[dbo].[таблица] в результате возвращается в первом столбце имя сервера и далее все поля из запроса, как отсортировать по алфавиту имена серверов (по первому столбцу в котором написано имя сервера), называется столбец "Имя сервера"? ORDER BY [имя сервера] = ошибка |
||||||
27 ноя 18, 12:36 [21745943] Ответить | Цитировать Сообщить модератору |
Eleanor Member Откуда: Сообщений: 3253 |
komrad, Спасибо, ваш вариант с waitfor работает. Мне даже подошла сортировка по первой букве, для визуального удобства чтения результатов. declare @delay varchar(10) = '00:00:0' + CAST((ASCII(UPPER(substring(@@servername, 1, 1))) - 65)/10.0 AS varchar(10)) waitfor delay @delay select sum(size/1024)*8/1024 GB from sys.master_files |
27 ноя 18, 13:22 [21746015] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
Я просто сразу не понял, что речь про "Multiple Server Query", как они в доке называются. Микрософт говорит, что нельзя :-( Multiple Server Query Execution ordering Хак от komrad у меня не сработал, Microsoft SQL Server Management Studio 13.0.16106.4 :-( |
||
27 ноя 18, 14:56 [21746166] Ответить | Цитировать Сообщить модератору |
Eleanor Member Откуда: Сообщений: 3253 |
alexeyvg, На 14.0.17285.0 работает. Единственное неудобство - задержка waitfor должна быть заведомо больше, чем возможные сетевые задержки. Мне пришлось delay между серверами делать ~100 мс. Т.е. если запрос к 50 серверам, то общее время ожидания уже не меньше 5 сек. |
27 ноя 18, 15:08 [21746184] Ответить | Цитировать Сообщить модератору |
r77 Member Откуда: Краснодар Сообщений: 270 |
Microsoft SQL Server Management Studio 10.50.1600.1, само собой у меня тоже не сработал ( ясно что никак, спасибо всем за ответы |
||||
27 ноя 18, 15:50 [21746241] Ответить | Цитировать Сообщить модератору |
Eleanor Member Откуда: Сообщений: 3253 |
r77, Можно скачать и установить последнюю версию SSMS, где всё работает. Старые версии Sql Server 2008 он воспринимает нормально. Если только у вас нет каких-то аддонов для старого ssms. |
27 ноя 18, 16:07 [21746275] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5593 |
спасибо за пруф интересно что, в случае если все сервера начинаются с одного префикса, то вычисление задержки по первому символу не приносит желаемого результата кстати, select sum(size/1024)*8/1024 GB from sys.master_filesможно переписать в более лаконичное select sum(size/128)/1024 GB from sys.master_filesгде size/128 это перевод в МБ |
||
27 ноя 18, 16:16 [21746292] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5593 |
а что именно не сработало? есть текст ошибки? |
||
27 ноя 18, 16:18 [21746295] Ответить | Цитировать Сообщить модератору |
r77 Member Откуда: Краснодар Сообщений: 270 |
на локальную переменную ругается... Невозможно присвоить значение по умолчанию локальной переменной. Необходимо объявить скалярную переменную "@delay". но не на всех серверах...только на тех у кого 2005, 2008-работает |
||||
27 ноя 18, 16:26 [21746303] Ответить | Цитировать Сообщить модератору |
r77 Member Откуда: Краснодар Сообщений: 270 |
надо set @delay= '00:00:0' + CAST((ASCII(UPPER(substring(@@servername, 1, 1))) - 65)/10.0 AS varchar(10)) в 2005 надо было через set |
||||
27 ноя 18, 16:32 [21746317] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |