Member 14118430 Ответов: 4

Я ищу C sharp скрипт для очистки моего SQL кода


У меня есть машинный SQL-код, который никуда не годится. Я нашел несколько инструментов форматирования в интернете, которые помогли мне привести в порядок и упорядочить код. Но есть некоторые ненужные псевдонимы, созданные машинным кодом, поэтому мне нужно удалить блоки кода из исходного скрипта, чтобы получить приличный SQL-код. Я ищу какой-нибудь скрипт на C#, который удалит блоки кода.

Что я уже пробовал:

Я новичок, я ничего не знаю о C#. любая помощь по этому вопросу была бы очень кстати

Maciej Los

Вы говорите о синтаксическом анализаторе SQL?

CHill60

Просто мысль... если вы ничего не знаете о C#, то зачем вам нужен сценарий C#?

4 Ответов

Рейтинг:
2

Maciej Los

Цитата:
Но есть некоторые ненужные псевдонимы, созданные машинным кодом, поэтому мне нужно удалить блоки кода из исходного скрипта, чтобы получить приличный SQL-код.

По-настоящему? Я не верю, что вы можете очистить свой SQL-код (запрос), удалив псевдонимы. Псевдонимы очень важны в SQL. Видеть: SQL Server: псевдонимы[^Я предпочитаю использовать псевдонимы, например, из-за более удобочитаемой формы sql-кода:
Без псевдонимов версия:
SELECT [dbo].[DatabaseName1].[FirstTableName].[Column1],  [dbo].[DatabaseName2].[SecondTableName].[Column5], ...
FROM [dbo].[DatabaseName1] INNER JOIN [dbo].[DatabaseName2] ON [dbo].[DatabaseName1].[FirstTableName].PrimaryKey = [dbo].[DatabaseName2].[SecondTableName].ForeignKey
WHERE [dbo].[DatabaseName1].[FirstTableName].[Column2]='Whatever'

С версией псевдонимов:
SELECT A.[Column1],  B.[Column5], ...
FROM [dbo].[DatabaseName1].[FirstTableName] AS A INNER JOIN [dbo].[DatabaseName2].[SecondTableName]  AS B ON A.PrimaryKey = B.ForeignKey
WHERE A.[Column2]='Whatever'


Мой совет: перестаньте искать инструмент, купите книгу и изучите SQL!


CHill60

"Перестаньте искать инструмент, купите книгу и узнайте о SQL!" - хороший совет! 5ед.

Maciej Los

Спасибо, Кэролайн.

0x01AA

"Псевдонимы очень важны в SQL": я бы сказал, что "псевдонимы в некоторых обстоятельствах очень важны в SQL". A 5.

Кстати: Трулл, Трулли должен быть более правдивым, я думаю :-)

Maciej Los

Спасибо, Бруно.

Рейтинг:
1

OriginalGriff

Вы очень, очень маловероятно найдете какой - либо код C#, который будет автоматически "чистить" SQL, я никогда не слышал ни о каком, и если бы он существовал, это было бы дорого-это потребовало бы значительного объема работы для производства, а рынок довольно мал. Я бы, конечно, хотел окупить хотя бы часть усилий, которые я вложил в его создание, если бы это было так, и выпуск исходного кода бесплатно, вероятно, не был бы высоко в моем списке приоритетов!

Я подозреваю, что вам придется "сжать кулаки" и вручную настроить SQL - или найти эксперта и заплатить ему, чтобы он сделал это как "одноразовое" упражнение.


Maciej Los

5ed!

Рейтинг:
0

CHill60

В дополнение к отличным советам в решениях с 1 по 3 - фраза, которую вы ищете, - это "рефактор" (попробуйте использовать "SQL Code refactor" в качестве поискового термина в вашем любимом поисковая система[^])

Есть несколько бесплатных инструментов, которые могут помочь - посмотрите здесь Рефакторинг SQL - кода-ApexSQL[^- но, как всегда, если что - то бесплатно, это может не стоить того!

Там есть много советов, например: Безболезненный рефакторинг объектов базы данных SQL Server - простой разговор[^] который взят из книги на эту тему.

Инструмент(ы) Redgate был рассмотрен/обсужден здесь, на CodeProject:
Более быстрая разработка баз данных с помощью SQL Refactor[^]
SQL Refactor – создание порядка из хаоса[^]
Написание читаемого SQL[^]


Maciej Los

5ed!

Рейтинг:
0

MadMyche

На мой взгляд, лучший инструмент для очистки машинного SQL-это человеческий разум. И лучшие программы для этого-это те, чья основная цель-SQL; в частности SSMS (SQL Server Management Studio). Azure Data Studio-это еще один вариант.

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

Я настоятельно рекомендую взять базовые операторы SQL (Select, Update и т. д.) и преобразовать их в хранимые процедуры. Это сделает код C# более чистым, так как вам нужно будет указать только имя процедуры, а не весь текст. При необходимости можно добавить параметры для любых переменных, которые необходимо включить в инструкцию. Использование параметров для этого в отличие от Объединения операторов SQL и переменных-лучший способ избежать уязвимостей SQL-инъекций.