Как проанализировать файлы SQL с помощью C#?

Кто-либо может помочь мне?

У меня есть набор .sql файлов. Я хочу проанализировать (проверяют) те файлы прежде, чем выполнить их на сервере.

У меня есть много онлайн-сайтов, которые анализируют код. Но я хочу проанализировать код с помощью C#.

Таким образом, можете Вы вести. Если существует какой-либо инструмент, dll я должен использовать.

Я просто хочу проанализировать файл и не выполнить его

5
задан Sunil Agarwal 1 June 2010 в 18:41
поделиться

7 ответов

Способ сделать это - выполнить его на сервере, только с SET PARSEONLY ON (чтобы он разбирался, но не выполнялся): Я думаю, что именно так это делает MS Query Analyzer.

13
ответ дан 18 December 2019 в 08:26
поделиться

У вас может быть процедура, которая может получать запрос в качестве входных данных и
на стороне SQL Server вы можете использовать инструкцию SET PARSEONLY ON , а затем "запустить" запрос. На самом деле запрос не будет выполняться, но будут сообщены любые ошибки.

3
ответ дан 18 December 2019 в 08:26
поделиться

Генератор парсера рогов - ваш лучший выбор. Для той версии SQL, которую вы хотите проанализировать, может существовать предопределенная грамматика.

1
ответ дан 18 December 2019 в 08:26
поделиться

Вам следует дважды (а может быть, даже трижды :-)) спросить себя, действительно ли вы хотите это сделать.

Даже если вы найдете решение, которое, похоже, работает с файлами, которые у вас есть сейчас, вероятно, будут всевозможные угловые случаи, которые не будут рассмотрены. Предложение о том, чтобы локальный механизм базы данных проанализировал его, в некотором роде работает, но все же может быть много небольших синтаксических различий между тем, что вы делаете локально, и тем, что происходит на сервере.

Мой совет - позволить серверу проанализировать и проверить его - это, по сути, единственный способ быть действительно уверенным.

1
ответ дан 18 December 2019 в 08:26
поделиться

В Visual Studio раньше было что-то под названием Visual Studio для специалистов по базам данных. Позже он был добавлен в Team Developer.

В любом случае, они «скомпилировали» код sql, выполнив его в базе данных и проверив результаты. Я полагаю, что если они так проверяли, что это работает, это, вероятно, лучший способ для вас тоже.

0
ответ дан 18 December 2019 в 08:26
поделиться

В DMS Software Reengineering Toolkit есть парсеры SQL, используемые для создания многих инструментов на основе SQL.

Одним из таких инструментов является FormatterFormatter, который анализирует исходный текст и красиво форматирует результат. Если форматтеру не удается разобрать исходный текст, он выдает ненулевой статус процесса.

Вы можете просто "отформатировать" файл; если форматирование не удается, это не является законным синтаксисом.

Эти форматеры являются коммерческими продуктами.

EDIT Aug 2011: Парсер DMS SQL теперь обрабатывает полную грамматику стандарта SQL 2011.

1
ответ дан 18 December 2019 в 08:26
поделиться

Быстрый Google обнаружил http://www.antlr.org/ с плагином для ms sql или одного из других диалектов sql

0
ответ дан 18 December 2019 в 08:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: