Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Как искать колонки по всей базе sql (http://forum.oszone.net/showthread.php?t=344146)

r-studio 22-02-2020 18:58 2910441

Как искать колонки по всей базе sql
 
Подскажите, пожалуйста, чтобы искать нужную колонку по всем таблицам в sql я могу сделать так
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME=N'roadid'
я получаю список таблиц где есть такая колонка

А как сделать тоже самое если мне надо найти все таблицы, где есть 2 колонки, например roadid и UserName
Я стал делать
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME=N'roadid'
and COLUMN_NAME=N'UserName';
но это не работает, потому что как минимум одну таблицу с таким условием я знаю что есть. и даже смотрю на нее.
Так как же искать таблицы, где есть одновременно 2 нужные колонки

Iska 22-02-2020 19:18 2910442

Цитата:

Цитата r-studio
Я стал делать
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME=N'roadid'
and COLUMN_NAME=N'UserName';
но это не работает »

А как это работает — Вы ничего не получаете или получаете перечень всех таблиц, где есть хотя бы одна из «колонок»?

r-studio 23-02-2020 11:55 2910503

Iska, мне запрос возвращает перечень таблиц, например
tab1
tab2
tab100500

Iska 23-02-2020 12:58 2910513

r-studio, это ответ не на тот вопрос, что я задал.

Я полез в WorkBench и посмотрел, как это выглядит. Задавая запрос вышеуказанного вида:
Цитата:

Цитата r-studio
Код:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME=N'roadid' and COLUMN_NAME=N'UserName';
»

Вы закономерно получаете ноль строк в ответе. Потому как запрос выглядит как два по определению не пересекающихся кортежа/множества.

Я бы попробовал так:
Код:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME=N'roadid') AND COLUMN_NAME=N'UserName';

r-studio 23-02-2020 13:10 2910514

Iska, работает


Время: 23:30.

Время: 23:30.
© OSzone.net 2001-