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

Откуда:
Сообщений: 38
Возникла необходимость из исходного кода SQL поудалять все лишние пробелы, табуляции, комментарии, возвраты кареток, переводы строк (так, чтобы код выглядел написанным в одну строку). Это нужно заказчику, так как ему надо потом этот код куда-то вставлять, я не знаю, задание мутное, но предлагать ему что-то разумное мне влом.

В redgate sql prompt есть прекрасная ф-ция форматирования исходного кода, которой я давно пользуюсь.

Но вот понадобилось обратное действие. Кто-нить сталкивался с такой проблемой? Именно для sql кода, со своими особенностями.
25 окт 13, 17:40    [15033638]     Ответить | Цитировать Сообщить модератору
 Re: удаление разметки кода  [new]
BuKTaP
Member

Откуда:
Сообщений: 132
SELECT RTRIM(o.name)  AS 'Имя объекта',
       o.type         AS 'Тип объекта',
       c.definition AS 'Текст'
FROM   sys.all_objects o
       INNER JOIN sys.schemas u
            ON  u.schema_id = o.schema_id
       INNER JOIN sys.all_sql_modules c
            ON  c.object_id = o.object_id
  

В поле 'Текст' всё в одну строку. Минус в том, что если где-то встречается закоментированная строка, то после неё вс и остаётся в комменте. Такого типа:
CREATE PROCEDURE dbo.TEST_INSERT AS --строка комента и дальше строка кода INSERT dbo.Table1 VALUES ('Test')  

Остальное (пробелы) нужно парсить, а так всё в одну строку.
25 окт 13, 18:20    [15033829]     Ответить | Цитировать Сообщить модератору
 Re: удаление разметки кода  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
BuKTaP
В поле 'Текст' всё в одну строку
Это просто студия все отображает в одну строку в режиме грида.
25 окт 13, 18:40    [15033902]     Ответить | Цитировать Сообщить модератору
 Re: удаление разметки кода  [new]
BuKTaP
Member

Откуда:
Сообщений: 132
а. ну да. виноват. в режиме текста действительно не строка.
25 окт 13, 18:49    [15033936]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить