An open API service indexing awesome lists of open source software.

https://github.com/notacat1/t4-sql-generator-project

This project provides a flexible T4 (Text Template Transformation Toolkit) template for dynamically generating SQL queries. The solution allows developers to quickly produce standardized SQL scripts with configurable table and field structures.
https://github.com/notacat1/t4-sql-generator-project

automation code-generation csharp database dynamic-programming script-generator sql t4 template

Last synced: about 1 month ago
JSON representation

This project provides a flexible T4 (Text Template Transformation Toolkit) template for dynamically generating SQL queries. The solution allows developers to quickly produce standardized SQL scripts with configurable table and field structures.

Awesome Lists containing this project

README

          

# T4-SQL-Generator-Project

![T4 Template](https://img.shields.io/badge/T4-Template-blue.svg)
![SQL Generator](https://img.shields.io/badge/SQL-Generator-green.svg)

## Описание проекта

Этот проект использует `Text Template Transformation Toolkit` (T4) для автоматической генерации `SQL-запросов` на основе заданных параметров. Шаблон создает `SQL-скрипт` с множеством `SELECT-запросов`, используя автоматически сгенерированные имена таблиц и полей.

## Особенности

- 🚀 Динамическая генерация `SQL-запросов`
- ⚙️ Настраиваемые параметры через константы
- ✅ Встроенная валидация входных данных
- 📝 Автоматическая документация в выходном файле
- 🧩 Модульная структура с вспомогательным классом

## Технические детали

- **Тип шаблона**: T4 Runtime template (`.tt` файл)
- **Выходной формат**: SQL скрипт (`.sql` файл)
- **Язык логики**: C#

## Быстрый старт

1. Клонируйте репозиторий
2. Откройте файл `SqlGenerator.tt`
3. Измените параметры генерации:
```csharp
const int N = 3; // Количество таблиц
const int M = 5; // Количество доступных полей
```
4. Сохраните файл - автоматически сгенерируется SQL-скрипт

## Пример вывода

```sql
-- Запрос 1 из 3 --
SELECT Field_1
FROM Table_1;

-- Запрос 2 из 3 --
SELECT Field_2
FROM Table_2;

-- Запрос 3 из 3 --
SELECT Field_3
FROM Table_3;
```

## Структура проекта

```
T4-SQL-Generator/

├── SqlGenerator.tt # Основной T4 шаблон
├── SqlGenerator.sql # Автогенерируемый выходной файл
└── README.md # Данный файл документации
```

## Настройка

Основные параметры для настройки находятся в начале T4-шаблона:

```csharp
// КОНФИГУРАЦИЯ ГЕНЕРАТОРА
const int N = 3; // Количество таблиц
const int M = 5; // Количество полей
```

## Валидация

Шаблон включает проверку:
```csharp
if (tablesCount > fieldsCount)
{
throw new ArgumentException(
$"Ошибка: Количество таблиц ({tablesCount}) " +
$"превышает количество полей ({fieldsCount})");
}
```

## Лицензия

Этот проект распространяется под лицензией MIT. Подробнее см. в файле [LICENSE](LICENSE).