Pertanyaan Temukan semua tabel yang berisi kolom dengan nama yang ditentukan - MS SQL Server


Apakah mungkin untuk query untuk nama tabel yang mengandung kolom sedang

LIKE '%myName%'

?


854
2018-01-31 10:12


asal


Jawaban:


Search Tables:

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;

Tabel & Tampilan Pencarian:

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

1382
2018-01-31 10:17



Kita juga bisa menggunakan sintaks berikut: -

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

221
2017-10-18 12:45



SQL Server:

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

Oracle:

SELECT owner,table_name, column_name 
FROM all_tab_columns 
WHERE column_name like '%YOUR_COLUMN_NAME%'
AND OWNER in ('YOUR_SCHEMA_NAME');
  • SEDERHANA SEPERTI ITU!! (SQL, PL / SQL) Saya menggunakannya SEMUA waktu untuk menemukan SEMUA contoh dari nama kolom dalam database yang diberikan (skema).

69
2017-09-22 18:56



Jika Anda lebih menyukai alat pihak ketiga, ada banyak opsi di sana seperti:

Ini sangat berguna jika database Anda berisi objek yang dienkripsi (tampilan, prosedur, fungsi) karena Anda tidak dapat dengan mudah mencari ini menggunakan tabel sistem.


57
2018-04-14 01:06



Ini seharusnya berfungsi:

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

56
2018-01-31 10:17



select  
        s.[name]            'Schema',
        t.[name]            'Table',
        c.[name]            'Column',
        d.[name]            'Data Type',
        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%'

Ini di sini akan memberi Anda sedikit informasi tambahan tentang skema, tabel, dan kolom yang Anda mungkin atau mungkin tidak memilih untuk menggunakan kondisi tambahan di mana klausa untuk difilter. Misalnya, jika Anda hanya ingin melihat bidang yang harus memiliki nilai tambah

and c.is_nullable = 0

Anda dapat menambahkan conditional lain, saya juga menambahkan kolom dalam klausa pilih dengan cara vertikal ini sehingga mudah untuk menyusun ulang, menghapus, mengganti nama, atau menambahkan yang lain berdasarkan kebutuhan Anda. Bergantian Anda bisa mencari hanya tabel dengan menggunakan T.Name. Ini sangat bisa disesuaikan.

Nikmati.


45
2018-03-27 13:42



Saya tidak tahu mengapa begitu banyak dari Anda menyarankan Bergabung dengan sys.table with sys.columns Anda cukup menggunakan kode di bawah ini:

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

atau

Jika Anda menginginkan nama skema juga:

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

37
2017-08-19 14:24