SQL Server: как получить данные из динамических нескольких таблиц? - PullRequest
0 голосов
/ 15 декабря 2011

Использование SQL SERVER.

База данных содержит данные разных лет, как-то я хочу получить все данные (все годы) и показать пользователю, например, база данных содержит таблицу:

table
--------
records_2000_01
records_2000_02
records_2000_03
...

теперь через select TABLE_NAME в @tableName из information_schema.tables, где table_name, например 'records _%'

Я могу получить все имена таблиц, как написать SQL (или, возможно, процедуру) для получениявсе данные из этих таблиц?сделать все записи в одну таблицу?

thx.

1 Ответ

1 голос
/ 15 декабря 2011

Создайте процедуру, описанную ниже. Вам необходимо следовать.

  • Create table Common_Table с такой же структурой, как у всей вашей таблицы, например records_2000_02 и др.
  • Использовать цикл или курсор для всех записей, которые вы получаете из information_schema, которые соответствуют вашему имени таблицы
  • Создайте динамический sql, такой как ' Insert into your Common_Table select * from ' + Table_name, который вы получаете из Information_schema.
    • Тогда вы получите все свои данные в одной таблице Common_Table
...