Saya menggunakan yang berikut ini untuk mencari string dalam prosedur tersimpan saya:
use DBname
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%xxx%'
Apakah mudah untuk mengubah hal di atas sehingga mencari nama Tabel dalam "DBname" db tertentu?
sql
sql-server
sql-server-2008-r2
whytheq
sumber
sumber
sumber
and is_ms_shipped = 0;
tampaknya tidak berbuat banyakJika Anda ingin melihat di semua tabel di semua Database di seluruh server dan mendapatkan output, Anda dapat menggunakan prosedur sp_MSforeachdb yang tidak terdokumentasi :
sumber
Saya berasumsi Anda ingin meneruskan nama database sebagai parameter dan tidak hanya menjalankan:
Jika demikian, Anda dapat menggunakan SQL dinamis untuk menambahkan dbname ke kueri:
sumber
Anda juga dapat menggunakan tombol Filter untuk memfilter tabel dengan string tertentu di dalamnya. Anda bisa melakukan hal yang sama dengan prosedur dan tampilan tersimpan.
sumber
Menambah jawaban @ [RichardTheKiwi].
Setiap kali saya mencari daftar tabel, secara umum saya ingin memilih dari semuanya atau menghapusnya. Di bawah ini adalah skrip yang menghasilkan skrip tersebut untuk Anda.
Skrip pemilihan yang dihasilkan juga menambahkan kolom tableName sehingga Anda tahu tabel yang Anda lihat:
sumber
Anda juga dapat menggunakan perintah show.
sumber
Saya tahu ini adalah utas lama, tetapi jika Anda lebih suka pencarian case-sensitive:
sumber
Saya ingin memposting solusi sederhana untuk setiap skema yang Anda miliki. Jika Anda menggunakan MySQL DB, Anda bisa mendapatkan semua nama tabel dari skema Anda dan menambahkan kondisi WHERE-LIKE. Anda juga bisa melakukannya dengan baris perintah biasa seperti berikut:
dimana
tables_in_<your_shcema_name>
mengembalikan nama kolom dariSHOW TABLES
perintah.sumber