Apakah ada cara untuk mencari string di semua tabel database di SQL Server Management Studio 2008?
Saya ingin mencari kata string john
. Hasilnya harus memperlihatkan tabel dan baris masing-masing yang berisi john
.
sql
sql-server
search
Ramiz Raja
sumber
sumber
Jawaban:
Jika Anda seperti saya dan memiliki batasan tertentu dalam lingkungan produksi, Anda mungkin ingin menggunakan variabel tabel alih-alih tabel temp, dan kueri ad-hoc daripada prosedur buat.
Tentu saja tergantung pada contoh server sql Anda, itu harus mendukung variabel tabel.
Saya juga menambahkan pernyataan USE untuk mempersempit ruang lingkup pencarian
sumber
Agak terlambat tapi semoga bermanfaat.
Mengapa tidak mencoba beberapa alat pihak ketiga yang dapat diintegrasikan ke dalam SSMS.
Saya telah bekerja dengan Pencarian ApexSQL (100% gratis) dengan keberhasilan yang baik untuk pencarian skema dan data dan ada juga paket alat SSMS yang memiliki fitur ini (tidak gratis untuk SQL 2012 tetapi cukup terjangkau).
Prosedur tersimpan di atas benar-benar hebat; hanya saja ini jauh lebih nyaman menurut saya. Juga, itu akan memerlukan sedikit modifikasi jika Anda ingin mencari kolom datetime atau kolom GUID dan ...
sumber
Untuk memperbarui jawaban TechDo untuk SQL server 2012. Anda perlu mengubah:
'FROM ' + @TableName + ' (NOLOCK) '
menjadiFROM ' + @TableName + 'WITH (NOLOCK) ' +
Bijaksana lain Anda akan mendapatkan kesalahan berikut:
Deprecated feature 'Table hint without WITH' is not supported in this version of SQL Server.
Di bawah ini adalah prosedur tersimpan lengkap yang diperbarui:
sumber
Agak terlambat, tetapi Anda dapat dengan mudah menemukan string dengan kueri ini
sumber
Saya telah menulis SP untuk ini yang mengembalikan hasil pencarian dalam bentuk Nama tabel, nama Kolom di mana string kata kunci pencarian ditemukan serta pencarian baris yang sesuai seperti yang ditunjukkan di bawah screenshot ini.
Ini mungkin bukan solusi yang paling efisien tetapi Anda selalu dapat memodifikasi dan menggunakannya sesuai kebutuhan Anda.
sumber
Tidak perlu untuk loop berulang (loop luar melalui tabel dan loop dalam melalui semua kolom tabel). Satu dapat mengambil semua (-sewenang-wenang dipilih / disaring) kombinasi kolom-tabel dari
INFORMATION_SCHEMA.COLUMNS
dan dalam satu loop cukup melewati (mencari) semuanya:sumber
curTabCol
memilih semua kombinasi table.column yang menarik. Kemudian cari semua kolom ini untuk string yang diberikan dalam variabel @search. Jika string seperti itu (tepat) dalam kueri SQL ini (jika tidak gunakan LIKE '% ...%') ada, kombinasi nama tabel dan kolom dicetak.Ini sangat membantu. Saya ingin mengimpor fungsi ini ke database SQL Postgre. Kupikir aku akan membaginya dengan siapa pun yang tertarik. Akan memilikinya beberapa jam. Catatan: fungsi ini membuat daftar pernyataan SQL yang dapat disalin dan dieksekusi pada database Postgre. Mungkin seseorang yang lebih pintar maka saya bisa mendapatkan Postgre untuk membuat dan menjalankan pernyataan semua dalam satu fungsi.
sumber
Jawaban yang disebutkan dalam posting ini sudah beberapa kali saya adopsi sedikit karena saya perlu mencari hanya dalam satu tabel juga:
(dan juga membuat input untuk nama tabel sedikit lebih sederhana)
sumber