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

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
Подскажите, может кто сталкивался с форматером вроде этого: http://www.dpriver.com/pp/sqlformat.htm
Но, что бы оно переводило ключевые слова в uppercase, а остальное форматирование (отступы, etc) не трогало?
27 апр 11, 11:52    [10572918]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а зачем ?? просто цикаво..каждый в свое время решил для себя какой формат кода будет , написал свою интуркцию и рапотает ...
27 апр 11, 12:07    [10573074]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
Maxx
а зачем ?? просто цикаво..каждый в свое время решил для себя какой формат кода будет , написал свою интуркцию и рапотает ...
угу
вот у меня тут
сколько разработчиков - столько и разных стилей написания
инструкцию написал, но лопатить уже существующий код руками - как то обламывает...
27 апр 11, 12:12    [10573127]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Гадя Петрович
Maxx
а зачем ?? просто цикаво..каждый в свое время решил для себя какой формат кода будет , написал свою интуркцию и рапотает ...
угу
вот у меня тут
сколько разработчиков - столько и разных стилей написания
инструкцию написал, но лопатить уже существующий код руками - как то обламывает...


так если все равно планируется натравливать форматтер, который переводит в uppercase, почему бы сразу всё не привести к одному виду тем же форматтером?
27 апр 11, 12:17    [10573169]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
а вообще вот еще такой пробовал, но бесплатная версия только по 100 строк принимает
27 апр 11, 12:19    [10573197]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
Shakill
так если все равно планируется натравливать форматтер, который переводит в uppercase, почему бы сразу всё не привести к одному виду тем же форматтером?
потому что до прошлого месяца разработчики работали без меня, им до лампочки какой там регистр у ключевых слов
повторяю, переконвертить надо существующий код, а не будущий
27 апр 11, 12:20    [10573209]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Гадя Петрович,

А не хотите написать свой?
27 апр 11, 12:41    [10573417]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Гадя Петрович
Shakill
так если все равно планируется натравливать форматтер, который переводит в uppercase, почему бы сразу всё не привести к одному виду тем же форматтером?
потому что до прошлого месяца разработчики работали без меня, им до лампочки какой там регистр у ключевых слов
повторяю, переконвертить надо существующий код, а не будущий

непонятно. вы планируете прогнать весь старый код через форматтер, но собираетесь менять только апперкейс, при том что можно его сразу так же автоматически подогнать под ваш формат для будущего кода?
27 апр 11, 12:51    [10573498]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
Mnior
Гадя Петрович,

А не хотите написать свой?
уже пишу :)
27 апр 11, 13:27    [10573814]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Гадя Петрович
уже пишу :)
А какой подход?
А то уже тут ласапедили: 9167323 (там же 9174513).
27 апр 11, 13:39    [10573954]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
Mnior
Гадя Петрович
уже пишу :)
А какой подход?
А то уже тут ласапедили: 9167323 (там же 9174513).
подход - проще некуда - скан документа и замена строчных букавок прописными :)
блин, не хотел огород городить...
27 апр 11, 14:10    [10574288]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Гадя Петрович, на всяк случай, вдруг забыли - колейшены бывают разные.
27 апр 11, 14:37    [10574539]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: SQL Formatter  [new]
igor_ku
Member

Откуда:
Сообщений: 129
Разыскивается SQL formatter, который умеет форматировать вот такой исходный код

SELECT *
FROM dbo.t t
	JOIN dbo.c c
	JOIN dbo.s s ON t.id = s.id ON t.id = c.id


в более человеческий

SELECT *
FROM dbo.t t
	JOIN dbo.c c ON t.id = c.id
	JOIN dbo.s s ON t.id = s.id


Перерыл форум, интернет, онлайн- и standalone форматтеры - никто не делает такого. Может не там ищу? Подскажите плиз. Очень нужно. В базе 10 000 таблиц, фрэймворк генерирующий такой код делает запросы с 60-180-и более JOIN'ами, и они с вот такими неупорядоченными ON'ами. Синтаксически всё Ok, но дебажить такое невыносимо мрачно, а иногда приходится.
16 июн 14, 18:51    [16171559]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Такое форматтером в текущем состоянии научно технического прогресса назвать тяжело.
Лет так 30 назад можно было, но у нас пока регресс в моде.

Вот тут 15975120 я спрашивал создателя плагина на счёт анализа запросов - поиск дубляжей связок.
Имхо, задача была чуть проще, но как продолжения темы рефакторинга ваша задача самое то.
Если не забросили, то может повезёт.

Я тоже считаю что форматтер обязан это делать.

Параллельно 16023128 есть другой плагин, где хотят написать свой форматтер.
Тоже жаждут идеи.
17 июн 14, 00:17    [16172813]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
igor_ku
Разыскивается SQL formatter, который умеет форматировать вот такой исходный код

SELECT *
FROM dbo.t t
	JOIN dbo.c c
	JOIN dbo.s s ON t.id = s.id ON t.id = c.id



в более человеческий

SELECT *
FROM dbo.t t
	JOIN dbo.c c ON t.id = c.id
	JOIN dbo.s s ON t.id = s.id
Это же банально разные запросы!
При чём тут "SQL Formatter" вообще?
SELECT *
FROM dbo.t t
JOIN
      dbo.c c
 JOIN dbo.s s ON t.id = s.id
ON t.id = c.id
Так я ещё бы понял...

Некоторые любят в этом случае скобки расставлять.
Но это на любителя, ибо они лишние.
17 июн 14, 09:25    [16173459]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
iap
igor_ku
Разыскивается SQL formatter, который умеет форматировать вот такой исходный код

SELECT *
FROM dbo.t t
	JOIN dbo.c c
	JOIN dbo.s s ON t.id = s.id ON t.id = c.id




в более человеческий

SELECT *
FROM dbo.t t
	JOIN dbo.c c ON t.id = c.id
	JOIN dbo.s s ON t.id = s.id

Это же банально разные запросы!
При чём тут "SQL Formatter" вообще?
SELECT *
FROM dbo.t t
JOIN
      dbo.c c
 JOIN dbo.s s ON t.id = s.id
ON t.id = c.id

Так я ещё бы понял...

Некоторые любят в этом случае скобки расставлять.
Но это на любителя, ибо они лишние.
Стоп!
А разве этот запрос рабочий?!
Во внутреннем JOINе t должен быть не виден!!!
Вот что бывает, когда сразу нормально не отформатируешь!
17 июн 14, 09:31    [16173482]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
igor_ku
Member

Откуда:
Сообщений: 129
(Сорри за паузу)

Mnior
Такое форматтером в текущем состоянии научно технического прогресса назвать тяжело.
Лет так 30 назад можно было, но у нас пока регресс в моде.

Вот тут 15975120 я спрашивал создателя плагина на счёт анализа запросов - поиск дубляжей связок.
Имхо, задача была чуть проще, но как продолжения темы рефакторинга ваша задача самое то.
Если не забросили, то может повезёт.

Я тоже считаю что форматтер обязан это делать.

Параллельно 16023128 есть другой плагин, где хотят написать свой форматтер.
Тоже жаждут идеи.

Спасибо. Поскольку тут от меня мало что зависит, остаётся только надеяться и ждать :) Самому заниматься нет возможности.
По второй ссылке про SSMSBoost - я ходил к ним на сайт (Перерыл форум, интернет, онлайн- и standalone форматтеры). Конкретно про форматтер написано, что они пользуют "Poor Man's T-SQL Formatter", который я ессно пробовал - он не исполняет моих желаний. Весь SSMSBoost ставить не стал, думаю там тоже самое.
iap
...

Не понял Ваших размышлений ни разу. Извините.
17 июн 14, 11:07    [16174173]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
не перестаю удивляться людям которые сами себе придумывают работу на ровном месте Что мешает в приказном порядке принять 1 формат написания кода для всех разработчиков то ?
17 июн 14, 11:14    [16174246]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
igor_ku
Member

Откуда:
Сообщений: 129
Maxx
не перестаю удивляться людям которые сами себе придумывают работу на ровном месте Что мешает в приказном порядке принять 1 формат написания кода для всех разработчиков то ?

Дело в том что это не руками написанный код, а сгенерированный фрэйворком. Он его генерит на основе верхнеуровневой модели и ему так удобнее. Понятно, что следущий совет - поправьте генератор. Но если бы было все так просто, то зачем мы тут все. Мой вопрос конкретно про форматтер и не более. Сам я неделю на проекте, которому n-лет, в базе 10к таблиц и запросы со 150+ JOIN'ами. Прошу помощи, а не стараюсь кого-то удивить.
igor_ku
iap
...

Не понял Ваших размышлений ни разу. Извините.

Со второго раза вроде понял :) Вот "более правильный" и рабочий пример исходного запроса, который необходимо отформатить.
+ Query source
CREATE TABLE dbo.t (id int)
CREATE TABLE dbo.c (id int)
CREATE TABLE dbo.s (id int)
CREATE TABLE dbo.r (id int)
GO
INSERT INTO dbo.t ( id ) VALUES (1)
INSERT INTO dbo.c ( id ) VALUES (1)
INSERT INTO dbo.s ( id ) VALUES (1)
INSERT INTO dbo.r ( id ) VALUES (1)
GO
-- Query
SELECT *
FROM dbo.t t
JOIN dbo.c c ON t.id = c.id
JOIN dbo.s s
JOIN dbo.r r ON s.id = r.id ON t.id = s.id
WHERE 1=1
GO
DROP TABLE dbo.t, dbo.c, dbo.s, dbo.r
GO

Хотелось бы получить такое
+ Query target
-- Query
SELECT *
FROM dbo.t t
JOIN dbo.c c ON t.id = c.id
JOIN dbo.s s ON t.id = s.id
JOIN dbo.r r ON s.id = r.id
WHERE 1=1
GO

Но уже понял, что решения пока нет. Всем спасибо! Если что появится по теме, буду рад услышать.
17 июн 14, 11:41    [16174511]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
igor_ku,

форматер, в моём представлении, должен всего лишь красиво вставить разделители в текст.
Ну, ещё комментарии, может быть.
Но один запрос преобразовать в другой... Не его это дело!
17 июн 14, 11:57    [16174636]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
igor_ku
Member

Откуда:
Сообщений: 129
iap
igor_ku,

форматер, в моём представлении, должен всего лишь красиво вставить разделители в текст.
Ну, ещё комментарии, может быть.
Но один запрос преобразовать в другой... Не его это дело!

Ммм, ну я склонен полагать, что приведенные запросы это одно и тоже. Наподобие как в WHERE поменять местами условия. Тут поменяли местами условия объединения таблиц. Лишь синтаксические игры. Нет?
17 июн 14, 12:25    [16174924]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
igor_ku
iap
igor_ku,

форматер, в моём представлении, должен всего лишь красиво вставить разделители в текст.
Ну, ещё комментарии, может быть.
Но один запрос преобразовать в другой... Не его это дело!

Ммм, ну я склонен полагать, что приведенные запросы это одно и тоже. Наподобие как в WHERE поменять местами условия. Тут поменяли местами условия объединения таблиц. Лишь синтаксические игры. Нет?
Нет. Особенно если в будущем придётся некоторые INNER JOIN преобразовать в LEFT JOIN
17 июн 14, 12:40    [16175103]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
igor_ku
Member

Откуда:
Сообщений: 129
Нет. Особенно если в будущем придётся некоторые INNER JOIN преобразовать в LEFT JOIN

Это уже предположения, которые out of question. Форматтер, о котором идёт речь, ничего про будущее не знает и ему это не надо. У него есть только текст. Тот же упоминаемый выше Poor Man's T-SQL Formatter существует в форме плагина для Notepad++, который вообще ни разу ни SQL Query Editor и коннекта к БД не устанавливает для форматирования.

В своей проблеме я как видно не один - линк - но решения там тоже не найдено.
17 июн 14, 12:50    [16175221]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
iap
форматер, в моём представлении ...
Я с вами согласен постольку поскольку живём на одной маленькой планетке.
Но представление о мирке строим на опыте, статистически, что принято называть народом.

Но строго говоря форматтер, это то кто представляет что-то в некотором виде, согласно некоторым правилам.
И вот что конкретно это как пасматреть.
По мне это один и тот же запрос, формально, хотя современные RDBS настолько глупы, что не умеют нормально у себя это представлять, и соответственно иногда тупят и не могут делать нормальные планы.

Язык и тексты сам по себе это каменный век. Это как отвергать SVG и предпочитать BMP формат в векторной графике.
К примеру, мне нравится, что отступы в питоне являются элементами языка, хоть на миллиметр ближе к элементарному идеалу, хоть и косвенно.
В идеале в структуре программы не должно быть понятия стиля, стиль задаёт читающий в некоторых правилах, как он привык и ему удобно.
Но мы уже по накатаной идём, отвергая всё старое и незыблемое.
iap
преобразовать
Ну, если придираться, то ре-форматтер.

iap
Нет. Особенно если в будущем придётся некоторые INNER JOIN преобразовать в LEFT JOIN
Хе-хе, "нет" только из-за того что у вас разные представления и критерии использования исходника?! Это не может быть категоричным.
Хотя я с вами согласен, если смысл таков, то лучше оставить так. Но я такое очень редко встречал, у меня это по VIEW расфасовано (хотя это не прямая связь, ибо там почти всегда везде LEFT).
18 июн 14, 02:10    [16179294]     Ответить | Цитировать Сообщить модератору
 Re: SQL Formatter  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
igor_ku
В своей проблеме я как видно не один ...
Естественно, столько научных работы было по этой тематике.
Просто она опоздала, поколение старше 80хх вообще оторваны от реальности.
Они копошатся в этих тысячах так называемых "новых технологиях", не понимая их реальный смысл. А в итоге меняя одну моду/упаковку на другую.
Редко когда что-то более не менее есть, хотя естественно ни о каком "новом" быть речи и не может.
18 июн 14, 02:15    [16179306]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить