Salman126 Ответов: 1

Как получить все записи из каждой таблицы, где id = 1 в MS SQL 2008


Как получить все записи из каждой таблицы (например, table1, table2, table3, ... tableN), где id = 1, из одной базы данных (например, database1) в SQL Server 2008 R2

Предположим,у меня есть 1 база данных и в ней есть бесконечные таблицы (например, table1,table2,...., tableN). Таким образом, можно получить всю запись из всей базы данных, где id=1 в каждой таблице.Я думаю, что это возможно с помощью SQL information_schema. table или information_schema.column, но я не знаю, как это использовать.

Любая помощь оценена по достоинству

Спасибо заранее

Что я уже пробовал:

Я попробовать с помощью регулярных выражений.стол и information_schema.колонки

Maciej Los

Да, это возможно!

Afzaal Ahmad Zeeshan

Вы знаете о том, что один запрос может возвращать одну таблицу (с несколькими таблицами, присоединенными к ней)?

Salman126

не могли бы вы сказать, как это сделать?

1 Ответов

Рейтинг:
1

OriginalGriff

Это возможно - но запрос будет отличаться каждый раз, когда таблица добавляется или удаляется, и это очень необычная вещь, чтобы попытаться сделать - это почти наверняка означает, что вся ваша конструкция БД неверна: команды SELECT предназначены для возврата информации из одной базовой таблицы с добавлением информации из других связанных таблиц, которые разделяют общую информацию (обычно через отношение внешнего ключа).
Попытка вернуть несвязанную информацию из переменного числа таблиц на самом деле не одно и то же.

Но если идентификатор является общим средством доступа, то вам понадобится что-то вроде:

SELECT a.*, b.*, c.*, d.*, ...
FROM Table1 a
JOIN Table2 b ON a.ID = b.ID
JOIN Table3 c ON a.ID = c.ID
JOIN Table4 d ON a.ID = d.ID
...
WHERE a.ID = 1

Но, как я уже сказал , Если это так, то обычно ваша БД плохо спроектирована.


Maciej Los

Похоже, что OP хочет получить данные из всех таблиц на основе таблицы information_schema. Я не думаю, что мы можем объединить эти данные из-за типа данных каждого идентификатора.

OriginalGriff

Что означает, что его дизайн БД *действительно * плох! :смеяться: