Apakah mungkin untuk menanyakan nama tabel yang berisi kolom
LIKE '%myName%'
?
sql
sql-server
tsql
system-tables
Gruber
sumber
sumber
Jawaban:
Cari Tabel:
Cari Tabel & Tampilan:
sumber
INFORMATION_SCHEMA
disertakan dalam SQL Server mematuhi definisi standar ISO untuk INFORMATION_SCHEMA. ,sys.columns
,sys.tables
Adalah Microsoft Sql Server tertentu.TABLE_SCHEMA
dalam daftar pilihan Anda dapat membantu. Masih memberi +1 karena ini adalah jawaban yang bagus.Kami juga dapat menggunakan sintaks berikut: -
sumber
INFORMATION_SCHEMA
adalah bagian dari Standar ANSISQL Server:
Peramal:
Saya menggunakannya SEMUA waktu untuk menemukan SEMUA contoh nama kolom dalam database yang diberikan (skema).
sumber
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 klausa tempat Anda memfilter. Misalnya, jika Anda hanya ingin melihat bidang yang harus memiliki nilai tambah
Anda dapat menambahkan persyaratan lainnya, saya juga menambahkan kolom dalam klausa pilih dengan cara vertikal ini sehingga mudah untuk memesan ulang, menghapus, mengganti nama, atau menambahkan yang lain berdasarkan kebutuhan Anda. Bergantian Anda bisa mencari tabel hanya dengan menggunakan T.Name. Ini sangat bisa dikustomisasi.
Nikmati.
sumber
Ini seharusnya bekerja:
sumber
sys.tables
sebagai gantinyasysobjects
(yang sudah usang pada SQL Server 2005)Jika Anda lebih ke alat pihak ketiga ada banyak pilihan di sana seperti:
Ini sangat berguna jika database Anda berisi objek terenkripsi (tampilan, prosedur, fungsi) karena Anda tidak dapat dengan mudah mencari ini menggunakan tabel sistem.
sumber
Saya tidak tahu mengapa begitu banyak dari Anda yang 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 ingin nama skema juga:
sumber
Jika Anda hanya ingin nama tabel Anda dapat menjalankan:
Jika Anda ingin Nama Skema juga (yang dalam banyak kasus Anda akan, karena Anda akan memiliki banyak skema yang berbeda, dan kecuali Anda dapat mengingat setiap tabel dalam database dan di mana tempatnya, ini dapat berguna) jalankan:
dan akhirnya jika Anda menginginkannya dalam format yang lebih bagus (walaupun di sinilah kodenya (Menurut saya) menjadi terlalu rumit untuk penulisan yang mudah):
perhatikan Anda juga dapat membuat fungsi berdasarkan apa yang saya miliki:
Perlu dicatat bahwa fitur concat ditambahkan pada 2012. Untuk 2008r2 dan sebelumnya menggunakan + untuk menggabungkan string.
Saya telah memformat ulang proc sedikit sejak saya memposting ini. Ini sedikit lebih maju sekarang tetapi terlihat jauh lebih berantakan (tapi ada di proc sehingga Anda tidak akan pernah melihatnya) dan diformat lebih baik.
Versi ini memungkinkan Anda untuk memilikinya dalam database administratif dan kemudian mencari melalui database apa pun. Ubah deklerasi dari
@db
dari'master'
mana Anda ingin menjadi basis data default (CATATAN: menggunakan fungsi CONCAT () hanya akan bekerja dengan 2012+ kecuali Anda mengubah rangkaian string untuk menggunakan+
operator).sumber
Itu dari Pinal Sir Blog
sumber
sumber
Anda dapat menemukannya dari INFORMATION_SCHEMA.COLUMNS oleh filter column_name
sumber
sumber
Permintaan berikut akan memberi Anda nama tabel yang tepat dari database yang memiliki nama bidang seperti '% myName'.
sumber
Untuk mendapatkan informasi lengkap: nama kolom, nama tabel serta skema tabel ..
sumber
Saya baru saja mencobanya dan ini bekerja dengan sempurna
Hanya ubah YourDatbaseName ke database Anda dan YourcolumnName menjadi nama kolom Anda yang Anda cari selebihnya tetap seperti semula.
Semoga ini bisa membantu
sumber
sumber
Saya menggunakan ini untuk tujuan yang sama dan berhasil:
sumber
Semoga ini bukan jawaban duplikat, tapi yang ingin saya lakukan adalah membuat pernyataan sql dalam pernyataan sql yang akan memungkinkan saya untuk mencari nilai yang saya cari (bukan hanya tabel dengan nama bidang tersebut (seperti biasanya diperlukan bagi saya untuk kemudian menghapus semua info yang terkait dengan id dari nama kolom yang saya cari):
Lalu saya bisa menyalin dan menempelkan jalankan kolom 1 "SQLToRun" ... lalu saya ganti "Pilih * dari 'dengan' Hapus dari 'dan itu memungkinkan saya untuk menghapus referensi apa pun ke ID yang diberikan! Tuliskan hasil ini ke file sehingga Anda memilikinya untuk berjaga-jaga.
CATATAN **** Pastikan Anda menghilangkan tabel bakup apa pun sebelum menjalankan pernyataan hapus Anda ...
sumber
sumber
Seperti oracle, Anda dapat menemukan tabel dan kolom dengan ini:
sumber
Saya menginginkan sesuatu untuk tabel dan tampilan yang tidak membuat mata saya berdarah.
Pertanyaan
Hasil
sumber
Hanya untuk meningkatkan jawaban di atas, saya sudah menyertakan Tampilan dan Gabungan Skema dan Tabel / Lihat bersama-sama membuat Hasil lebih jelas.
sumber
Anda dapat mencoba pertanyaan ini:
sumber
Inilah jawaban untuk pertanyaan Anda
sumber
sumber
Inilah solusi yang berfungsi untuk basis data Sybase
sumber
Kita dapat menggunakannya
sp_columns
untuk tujuan tersebut.sumber
Permintaan SQL untuk menampilkan semua tabel yang memiliki nama kolom yang ditentukan:
sumber