Можно ли запросить имена таблиц, которые содержат столбцы
LIKE '%myName%'
?
sql
sql-server
tsql
system-tables
Gruber
источник
источник
Ответы:
Таблицы поиска:
Поиск таблиц и просмотров:
источник
INFORMATION_SCHEMA
представления, включенные в SQL Server, соответствуют стандартному определению ISO для INFORMATION_SCHEMA. ,sys.columns
,sys.tables
Специфично Microsoft SQL Server.TABLE_SCHEMA
в ваш список выбора может быть полезным. Еще +1, потому что это хороший ответ.Мы также можем использовать следующий синтаксис:
источник
INFORMATION_SCHEMA
является частью стандарта ANSISQL Server:
Oracle:
Я использую его ВСЕ время, чтобы найти ВСЕ экземпляры имени столбца в заданной базе данных (схеме).
источник
Здесь вы получите немного дополнительной информации о схеме, таблицах и столбцах, которые вы можете или не можете использовать для фильтрации в дополнительных условиях. Например, если вы хотите видеть только те поля, которые должны иметь значения, добавьте
Вы можете добавить другие условия, я также добавил столбцы в предложении select по вертикали, чтобы было легко переупорядочивать, удалять, переименовывать или добавлять другие в зависимости от ваших потребностей. В качестве альтернативы вы можете искать только таблицы с помощью T.Name. Его очень настраиваемый.
Наслаждаться.
источник
Это должно работать:
источник
sys.tables
вместоsysobjects
(что устарело в SQL Server 2005)Если вам больше нравятся сторонние инструменты, есть много вариантов, таких как:
Это очень удобно, если ваша база данных содержит зашифрованные объекты (представления, процедуры, функции), потому что вы не можете легко найти их с помощью системных таблиц.
источник
Я не знаю, почему многие из вас, предлагающие присоединиться к
sys.table with sys.columns
вам, могут просто использовать следующий код:Select object_name(object_id) as TableName,* from SYS.columns where name LIKE '%MyName%'
или
Если вы хотите также имя схемы:
источник
Если вам просто нужно имя таблицы, вы можете запустить:
Если вам нужно также имя схемы (что во многих случаях потребуется, так как у вас будет много разных схем, и если вы не сможете запомнить каждую таблицу в базе данных и ее принадлежность, это может быть полезно):
и, наконец, если вы хотите получить его в более хорошем формате (хотя здесь код (на мой взгляд) становится слишком сложным для простого написания):
обратите внимание, вы также можете создать функцию на основе того, что у меня есть:
Стоит отметить, что функция concat была добавлена в 2012 году. В 2008r2 и более ранних версиях + используется для объединения строк.
Я немного переформатировал процесс, так как опубликовал это. Теперь он немного более продвинутый, но выглядит намного более запутанным (но он в процессе, поэтому вы никогда его не увидите), и он лучше отформатирован.
Эта версия позволяет вам иметь его в административной базе данных, а затем искать в любой базе данных. Измените decleration на
@db
from,'master'
в зависимости от того, какой базой данных по умолчанию вы хотите (ПРИМЕЧАНИЕ: использование функции CONCAT () будет работать только с 2012+, если вы не измените конкатенацию строк для использования+
операторов).источник
Это из блога Пинал сэр
источник
источник
Вы можете найти его в INFORMATION_SCHEMA.COLUMNS по фильтру column_name
источник
источник
Следующий запрос даст вам точные имена таблиц базы данных с именем поля, например «% myName».
источник
Чтобы получить полную информацию: имя столбца, имя таблицы, а также схему таблицы.
источник
Я только что попробовал, и это прекрасно работает
Измените YourDatbaseName только на свою базу данных, а YourcolumnName на имя столбца, которое вы ищете, а оставьте его как есть.
Надеюсь, это помогло
источник
источник
Я использовал это для той же цели, и это сработало:
источник
Надеюсь, это не повторяющийся ответ, но мне нравится генерировать SQL-оператор внутри SQL-оператора, который позволит мне искать значения, которые я ищу (а не только таблицы с этими именами полей (как это обычно бывает). необходимо удалить всю информацию, связанную с идентификатором имени столбца, который я ищу):
Затем я могу скопировать и вставить мой первый столбец «SQLToRun» ... затем я заменяю «Выбрать * из» на «Удалить из», и это позволяет мне удалять любые ссылки на данный идентификатор! Записать эти результаты в файл, чтобы вы иметь их на всякий случай.
ПРИМЕЧАНИЕ **** Убедитесь, что вы удалили все таблицы bakup перед выполнением оператора удаления ...
источник
источник
Как оракул, вы можете найти таблицы и столбцы с этим:
источник
Я хотел что-то для таблиц и представлений, которые не заставляли мои глаза кровоточить.
запрос
Результат
источник
Просто чтобы улучшить ответы выше, я включил также представления и объединил схему и таблицу / представление вместе, чтобы сделать результаты более очевидными.
источник
Вы можете попробовать этот запрос:
источник
Вот ответ на ваш вопрос
источник
источник
Вот рабочее решение для базы данных Sybase
источник
Мы можем использовать
sp_columns
для этой цели.источник
SQL-запрос для отображения всех таблиц с указанным именем столбца:
источник