[sql] 지정된 이름의 열이 포함 된 모든 테이블 찾기-MS SQL Server

열이 포함 된 테이블 이름을 쿼리 할 수 ​​있습니까?

LIKE '%myName%'

?



답변

검색 테이블 :

SELECT      c.name  AS 'ColumnName'
            ,t.name AS 'TableName'
FROM        sys.columns c
JOIN        sys.tables  t   ON c.object_id = t.object_id
WHERE       c.name LIKE '%MyName%'
ORDER BY    TableName
            ,ColumnName;

검색 테이블 및 뷰 :

SELECT      COLUMN_NAME AS 'ColumnName'
            ,TABLE_NAME AS  'TableName'
FROM        INFORMATION_SCHEMA.COLUMNS
WHERE       COLUMN_NAME LIKE '%MyName%'
ORDER BY    TableName
            ,ColumnName;


답변

다음과 같은 구문을 사용할 수도 있습니다.

select * from INFORMATION_SCHEMA.COLUMNS
where COLUMN_NAME like '%clientid%'
order by TABLE_NAME


답변

SQL 서버 :

SELECT Table_Name, Column_Name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YOUR_DATABASE'
AND COLUMN_NAME LIKE '%YOUR_COLUMN%'

신탁:

SELECT owner, table_name, column_name
FROM all_tab_columns
WHERE column_name LIKE '%YOUR_COLUMN_NAME%'
AND OWNER IN ('YOUR_SCHEMA_NAME');
  • 간단합니다 !! (SQL, PL / SQL)
    주어진 데이터베이스 (스키마)에서 열 이름의 모든 인스턴스를 찾기 위해 항상 사용합니다.

답변

select
        s.[name]            'Schema',
        t.[name]            'Table',
        c.[name]            'Column',
        d.[name]            'Data Type',
        c.[max_length]      'Length',
        d.[max_length]      'Max Length',
        d.[precision]       'Precision',
        c.[is_identity]     'Is Id',
        c.[is_nullable]     'Is Nullable',
        c.[is_computed]     'Is Computed',
        d.[is_user_defined] 'Is UserDefined',
        t.[modify_date]     'Date Modified',
        t.[create_date]     'Date created'
from        sys.schemas s
inner join  sys.tables  t
on s.schema_id = t.schema_id
inner join  sys.columns c
on t.object_id = c.object_id
inner join  sys.types   d
on c.user_type_id = d.user_type_id
where c.name like '%ColumnName%'

여기에서는 필터링 할 where 절에서 추가 조건을 사용하도록 선택하거나 선택하지 않을 수있는 스키마, 테이블 및 열에 대한 약간의 추가 정보를 제공합니다. 예를 들어 값이 있어야하는 필드 만 보려면

and c.is_nullable = 0

다른 조건을 추가 할 수도 있습니다.이 수직 방식으로 select 절에 열을 추가 했으므로 필요에 따라 재정렬, 제거, 이름 바꾸기 또는 다른 항목을 쉽게 추가 할 수있었습니다. 또는 T.Name을 사용하여 테이블 만 검색 할 수 있습니다. 매우 사용자 정의가 가능합니다.

즐겨.


답변

이것은 작동해야합니다 :

SELECT name
FROM sysobjects
WHERE id IN ( SELECT id
              FROM syscolumns
              WHERE name like '%column_name%' )


답변

타사 도구에 더 익숙하다면 다음과 같은 많은 옵션이 있습니다.

시스템 테이블을 사용하여 쉽게 검색 할 수 없기 때문에 데이터베이스에 암호화 된 개체 (보기, 프로 시저, 함수)가 포함되어 있으면 매우 유용합니다.


답변

왜 많은 사람들이 당신과 함께 참여 sys.table with sys.columns
하는 것이 아래 코드를 사용할 수 있는지 모르겠습니다 .

Select object_name(object_id) as TableName,* from SYS.columns where name LIKE '%MyName%'

또는

스키마 이름도 원하는 경우 :

Select * from  INFORMATION_SCHEMA.COLUMNS
where COLUMN_NAME LIKE '%MyName%'