Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Query untuk menemukan nama kolom di seluruh Database

Jadi, jika Anda menggunakan SQL Server maka Anda dapat menjalankan ini untuk menemukan semua kolom di semua tabel.

select
    'SELECT * FROM ' 
     + st.name + 
     ' WHERE ' + 
       sc.name + ' = ''MICROSOFT'' '
from sys.tables st join sys.columns sc on st.object_id = sc.object_id

Dengan menggunakan output kueri ini, Anda membuat daftar semua kemungkinan kombinasi SELECTS untuk setiap kolom di setiap tabel.

Ini hanya menampilkan daftar semua perintah, sekarang Anda harus menjalankannya. Untuk menjalankan setiap perintah, Anda harus membuat kursor yang akan memeriksa seluruh daftar hasil.

Anda akan mengelilingi SELECT previous sebelumnya pernyataan dengan kursor untuk memeriksa setiap kueri dan menjalankannya. Jadi, kodenya menjadi seperti ini

DECLARE @myCommand VARCHAR(1000)

DECLARE c CURSOR READ_ONLY FAST_FORWARD FOR
    select
        'SELECT * FROM ' 
         + st.name + 
         ' WHERE ' + 
           sc.name + ' = ''MICROSOFT'' '
    from sys.tables st join sys.columns sc on st.object_id = sc.object_id
OPEN c

FETCH NEXT FROM c INTO @myCommand
WHILE @@FETCH_STATUS = 0
    BEGIN
        sp_executesql @myCommand
    FETCH NEXT FROM c INTO @myCommand
    END

CLOSE c

DEALLOCATE c


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana melakukan pagination di SQL Server 2008

  2. Akses Android ke database SQL jarak jauh

  3. operasi tidak diizinkan ketika objek ditutup saat menjalankan kueri yang lebih maju

  4. GETUTCDATE() Contoh di SQL Server (T-SQL)

  5. Cara ORDER BY di SQL PIVOT