Требования: Необходимо определить, есть ли синтаксические ошибки в SQL-операторе, чтобы обеспечить нормальное выполнение в базе данных SQL Server, а затем получить имя таблицы оператора выполнения.
SqlScriptDOM
SqlScriptDOM (SQL Script Document Object Model) — это часть .NET-фреймворка, которая в основном используется для разбора и обработки скриптов T-SQL. Он предоставляет набор API, позволяющих разработчикам программно читать, изменять или генерировать T-SQL код для SQL Server. Это полезно в ситуациях, когда необходимо автоматизировать скрипты базы данных, например, в инструментах миграции баз данных, версионировании базы данных или в любых приложениях, где необходимо динамически строить SQL-операторы.
С помощью SqlScriptDOM вы можете:
Разбор SQL-скриптов: Преобразуйте T-SQL код в древовидную структуру для удобства понимания и обработки. Прохождение AST (Абстрактное синтаксическое дерево): Получите доступ и изменяйте разные части вашего SQL-скрипта, проходя по этой структуре дерева. Генерируйте SQL-скрипты: Перегенерируйте T-SQL код на основе изменённого абстрактного синтаксического дерева. Выполняйте статический анализ: проверяйте возможные ошибки или нерегулярности в SQL-скриптах, не запуская их непосредственно. Поддержка различных элементов SQL, включая, но не ограничиваясь, определениями таблиц, представлениями, хранящимися процедурами и т.д.
Источник:Вход по гиперссылке виден. Документация:Вход по гиперссылке виден.
Ссылка на отображение версий
Краткий справочник SqlVersionFlags:
| Логотип | Версия SQL Server | год | Общие характеристики | | TSql80 и выше | 2000 | 2000 | Основы T-SQL | | TSql90 и выше | 2005 | 2005 | XML、CTE | | TSql100 и выше | 2008 | 2008 | Слияние, поток файлов | | TSql110 и выше | 2012 | 2012 | Последовательности, функции окна | | TSql120 и выше | 2014 | 2014 | Память OLTP, максимальная длительность | | TSql130 и выше | 2016 | 2016 | JSON, напряжённая таблица | | TSql140 и выше | 2017 | 2017 | Подумайте, STRING_AGG | | TSql150 и выше | 2019 | 2019 | UTF-8, Smart QP | | TSql160 и выше | 2022 | 2022 | Восстановимые ограничения, улучшения JSON | | TSql170 и выше | 2025 | 2025 | Векторный поиск, функции искусственного интеллекта |
Ссылки на NUGET следующие:
Названия таблиц разбора
Разберите имя таблицы в операторе select следующим кодом:
Как показано ниже:
Проверьте безопасность SQL-запросов, разрешите выполнение только класса SELECT (непротестированного), код выглядит следующим образом:
(Конец) |