У нас есть ужасно разработанная база данных, в которой есть процедуры, которые генерируют новые таблицы каждую неделю, и делали это в течение нескольких лет. У него есть SQL-скрипт, который получает 200 + столбцов данных через запросы в разных таблицах, выгружает их все в одну таблицу под названием «Выбор», а затем после этого вы должны вручную переименовывать эту таблицу (Selections_Week001, Selections_Week002 и т. Д.) Каждую неделю. Теперь у нас есть около 100 таблиц. Я хочу сделать все эти данные в одну таблицу, столбец с указанием исходной исходной таблицы (001, 002 и т. Д.), Поэтому я могу избавиться от всех этих отдельных таблиц. Есть ли способ сделать это, используя какой-то SQL-скрипт, или мне придется вручную отредактировать и запустить 100 запросов append?Объединение таблиц в один
ответ
Попробуйте это для меня хорошо работали на тестовых данных:
select *
into Selections_Total
from Selections_Week001
where 1=0
alter table Selections_Total
add Original_Table varchar(64)
--select * From Selections_Total
declare @sql varchar(max)
select @sql = COALESCE(@sql + ' UNION ALL select *, ''' + name + ''' from ', 'select *, ''' + name + ''' from ') + name
from sys.tables where name like 'Selections_Week%'
--select @sql
insert into Selections_Total
exec(@sql)
UPD: пропустил with a column indicating its original source table
на первый. Теперь исправлено.
"' где 1 = 0' "--- что это должно делать? – WillardSolutions
выберите 0 строк из таблицы, чтобы скопировать только структуру –
Ницца, это хорошо работает на таблицах, которые есть, спасибо за помощь, Андрей! –
- 1. Объединение и объединение двух таблиц в один
- 2. Объединение столбцов из двух таблиц в один
- 3. Объединение нескольких таблиц данных в один
- 4. SQL Объединение этих двух таблиц в один
- 5. Объединение альтернативных таблиц стилей в один файл
- 6. SQL: объединение кратных таблиц в один
- 7. Объединение двух таблиц в один объект типа
- 8. Объединение нескольких таблиц в один результат
- 9. выберите объединение нескольких таблиц за один шаг
- 10. Объединение двух таблиц для один выход
- 11. объединение таблиц в запросе
- 12. Объединение таблиц
- 13. Объединение таблиц в Rails
- 14. Объединение таблиц в SQL
- 15. Объединение таблиц в NHibernate
- 16. Объединение таблиц в MySql
- 17. Объединение таблиц в RedQueryBuilder
- 18. Объединение таблиц в ORM
- 19. объединение таблиц в MySQL
- 20. Объединение 3 таблиц в один запрос на выбор в php
- 21. Объединение 2 таблиц в mysql
- 22. Объединение нескольких таблиц в MySQL
- 23. Объединение двух таблиц в SQL
- 24. Объединение/запрос больших таблиц
- 25. Объединение двух таблиц MySQL
- 26. Объединение нескольких таблиц
- 27. PostgreSQL - объединение двух таблиц
- 28. объединение двух идентичных таблиц (фактически табличных полей) в один
- 29. Excel 2010: Автоматическое объединение нескольких таблиц в один набор данных
- 30. Экспорт данных из двух таблиц и объединение в один файл
Вы можете объединить их все вместе в одном запросе и сделать одну вставку, но это будет убийцей, если у вас много данных. Я бы создал скрипт, который делает их за один раз (вы можете легко создавать множество скриптов в чем-то вроде excel). Я бы предпочел, чтобы это контролировало все сразу. –
Мое мнение: я бы подумал о том, чтобы использовать для этого какой-то язык сценариев, так как динамический sql излишне худший. – AndreasT
Я просто надеялся написать что-то, что могло бы динамически захватить каждое имя таблицы и автоматически сделать добавление для всех таблиц, без необходимости переписывать его 100 раз –