Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выборка из 20 одинаковых таблиц по одному (нескольким) полям  [new]
Eskim
Member

Откуда: Сахалин
Сообщений: 1
Товарищи, заблаговременно извините за может быть глупые вопросы.
Вкратце, я "офисный клерк" - аналитик. На производстве используется MS SQL. База данных, помимо прочего всякого содержит постоянно 20 таблиц, каждая, если выгрузить в тхт около 3 Гб.
Таблицы состоят из 42 полей (id, datetime, data1, data2,data3....data40).
Последняя таблица формируется и заполняется ежедневно, а первая удаляется.
То есть сегодня: table_09_09, table_10_09,.....table_28_09, table_29_09. Завтра в 00:00 table_09_09 удалится, и появится таблица table_30_09.
С разработчиками проекта связь крайне затруднительна. Поэтому ряд вопросов, надеюсь на вашу снисходительность и посильную помощь.
1) Как автоматизировать сохранение таблицы перед удалением, ее экспорт в тхт (руками каждый день в 23:59 мне кажется неправильно :-) ).
2) Для аналитики требуется иногда (раз в два дня) искать во всех 20 таблицах данные равные какому нить значению - на примере одного примитивного запроса:
SELECT *
FROM table_09_09
WHERE data1='something' and data2 LIKE '%something2%' and datetime between....

Как провести поиск сразу по 20 таблицам.
29 сен 11, 15:18    [11355920]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 20 одинаковых таблиц по одному (нескольким) полям  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
Eskim,

SELECT table_name, *
FROM
(
SELECT table_09_09 AS table_name, [перечислить необходимые поля]
FROM table_09_09
UNION ALL
SELECT table_10_09 AS table_name, [перечислить необходимые поля]
FROM table_10_09
UNION ALL
SELECT table_11_09 AS table_name, [перечислить необходимые поля]
FROM table_11_09
и т.д.
) AS tt
WHERE DATA =...	
это для одного раза.

А т.к. названия таблиц меняются это диамический sql использовать нужно.
29 сен 11, 15:31    [11356094]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 20 одинаковых таблиц по одному (нескольким) полям  [new]
iljy
Member

Откуда:
Сообщений: 8711
Eskim,

1. SQL Agent - Job, можно настроить выполнение bcp по расписанию. Ну или банально виндовым планировщиком.
2. Объединить все эти таблицы во вьюху (CREATE VIEW).

Вообще присутствие полей data1, data2 ... data40 скорее всего говорит о серьезных просчетах в проектировании. Скуль заточен под операции с множествами, поэтому в нем гораздо удобнее работать с узкой и длинной таблицой, чем с широкой.
29 сен 11, 15:32    [11356103]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить