Diberi #, bagaimana saya menemukan di tabel dan kolom apa itu dapat ditemukan di dalam?
Saya tidak peduli jika cepat, hanya perlu bekerja.
sql-server
Allain Lalonde
sumber
sumber
Jawaban:
Ini mungkin bisa membantu Anda . - dari Narayana Vyas. Itu mencari semua kolom dari semua tabel dalam database yang diberikan. Saya telah menggunakannya sebelumnya dan berhasil.
Ini adalah Stored Proc dari tautan di atas - satu-satunya perubahan yang saya buat adalah mengganti tabel temp untuk variabel tabel sehingga Anda tidak harus ingat untuk menjatuhkannya setiap kali.
sumber
Jika Anda hanya perlu menjalankan pencarian seperti itu sekali saja maka Anda mungkin dapat memilih skrip yang sudah ditampilkan di jawaban lain. Tetapi jika tidak, saya akan merekomendasikan menggunakan Pencarian ApexSQL untuk ini. Ini addin SSMS gratis dan benar-benar menghemat banyak waktu.
Sebelum menjalankan skrip apa pun, Anda harus menyesuaikannya berdasarkan tipe data yang ingin Anda cari. Jika Anda tahu Anda sedang mencari kolom datetime maka tidak perlu mencari melalui kolom nvarchar. Ini akan mempercepat semua pertanyaan di atas.
sumber
Berdasarkan jawaban bnkdev, saya memodifikasi Kode Narayana untuk mencari semua kolom bahkan yang numerik.
Ini akan berjalan lebih lambat, tetapi versi ini benar-benar menemukan semua kecocokan bukan hanya yang ditemukan di kolom teks.
Saya tidak bisa cukup berterima kasih kepada orang ini. Menyelamatkan saya berhari-hari mencari dengan tangan!
sumber
Ini adalah pendapat saya sendiri atas pertanyaan ini yang saya gunakan untuk pekerjaan saya sendiri. Ia bekerja di SQL2000 dan yang lebih besar, memungkinkan wildcard, filter kolom, dan akan mencari sebagian besar tipe data normal.
Deskripsi pseudo-code bisa jadi
select * from * where any like 'foo'
Saya tidak meletakkannya di formulir proc karena saya tidak ingin mempertahankannya di ratusan DB dan itu sebenarnya untuk pekerjaan ad-hoc. Silakan mengomentari perbaikan bug.
sumber
Saya mengoptimalkan jawaban Allain Lalonde ( https://stackoverflow.com/a/436676/412368 ). Nilai numerik masih didukung. Seharusnya kira-kira 4-5 kali lebih cepat (1:03 vs 4:30), diuji pada desktop dengan basis data 7GB. http://developer.azurewebsites.net/2015/01/mssql-searchalltables/
sumber
Ini cara saya untuk menyelesaikan pertanyaan ini. Diuji pada SQLServer2008R2
sumber
Terima kasih untuk skrip yang sangat berguna.
Anda mungkin perlu menambahkan modifikasi berikut ke kode jika tabel Anda memiliki bidang yang tidak dapat dikonversi:
Chris
sumber
Saya punya solusi dari beberapa waktu lalu yang terus saya tingkatkan. Juga mencari dalam kolom XML jika disuruh melakukannya, atau mencari nilai integer jika memberikan string integer saja.
Sumber: http://fullparam.wordpress.com/2012/09/07/fck-it-i-am-going-to-search-all-tables-all-collumns/
sumber
Saya pernah menulis sebuah alat untuk saya sendiri untuk melakukan hal itu:
a7 SqlTools
Ini gratis dan open-source:
tautan github
sumber
Di sini, solusi yang sangat manis dan kecil:
==========================
sumber
Cara lain menggunakan JOIN dan CURSOR:
sumber
Anda mungkin perlu membuat indeks terbalik untuk basis data Anda. Dijamin cukup cepat.
sumber
Misalkan jika Anda ingin mendapatkan semua tabel dengan nama, nama kolom berisi logintime di database MyDatabase di bawah ini adalah contoh kode
sumber
Jika Anda telah menginstal phpMyAdmin gunakan Pencarian .
Pilih DataBase Anda.
Pastikan Anda telah memilih DataBase, bukan tabel, jika tidak, Anda akan mendapatkan dialog pencarian yang sama sekali berbeda.
sumber
sumber
Untuk tujuan Pengembangan Anda hanya bisa mengekspor data tabel yang diperlukan ke dalam satu HTML dan melakukan pencarian langsung di atasnya.
sumber
Alat klien basis data (seperti DBeaver atau phpMyAdmin ) seringkali mendukung cara pencarian teks lengkap melalui seluruh basis data.
sumber