Intereting Posts

Примеры DYnamic SQL

В последнее время я узнал, что такое динамический sql, и одна из самых интересных особенностей для меня – это то, что мы можем использовать динамические имена колонок и таблицы. Но я не могу думать о полезных примерах реальной жизни. Единственное, что мне пришло в голову, – это статистическая таблица.

Скажем, у нас есть таблица с именем, типом и created_data. Затем мы хотим иметь таблицу, которая в столбцах – годы из столбца created_data, а также тип строки и количество имен, созданных в годах. (Извините за мой английский)

Какими могут быть другие полезные примеры реальной жизни для использования динамического sql с столбцом и таблицей в качестве параметров? Как ты это используешь?

Спасибо за любые предложения и помощь 🙂 привет Гейб

/ edit Thx для ответов, я особенно заинтересован в примерах, которые не содержат административных вещей или преобразования баз данных или что-то в этом роде. Я ищу примеры, где код в примере java более сложный, чем использование динамического sql-файла, например, хранимой процедуры ,

    Мне когда-то приходилось писать импорт Excel, в котором лист excel не был похож на файл csv, а выкладывался как матрица. Поэтому мне пришлось иметь дело с неизвестным числом столбцов для трех временных таблиц (столбцы, строки, «внутрипромысловые»). Строки также были короткой формой дерева. Звучит странно, но было весело. В SQL Server не было возможности справиться с этим без динамического SQL.

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

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

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

    INSERT INTO users (name, col1, col2) SELECT 'foo', col1, col2 FROM user_foo UNION ALL SELECT 'bar', col1, col2 FROM user_bar UNION ALL ... 

    Затем, надеюсь, после этого, как только вам не понадобится снова коснуться динамического SQL.