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

Bagaimana cara membuat daftar semua tabel di semua database di SQL Server dalam satu set hasil?

untuk cara mudah mendapatkan semua tabel di server, coba ini:

SET NOCOUNT ON
DECLARE @AllTables table (CompleteTableName nvarchar(4000))
INSERT INTO @AllTables (CompleteTableName)
    EXEC sp_msforeachdb 'select @@SERVERNAME+''.''+''?''+''.''+s.name+''.''+t.name from [?].sys.tables t inner join sys.schemas s on t.schema_id=s.schema_id'
SET NOCOUNT OFF
SELECT * FROM @AllTables ORDER BY 1

itu akan mengembalikan satu kolom yang berisi server+database+schema+nama tabel:sampel keluaran:

CompleteTableName
--------------------------------------------
YourServer.YourDatabase1.YourSchema1.YourTable1
YourServer.YourDatabase1.YourSchema1.YourTable2
YourServer.YourDatabase1.YourSchema2.YourTable1
YourServer.YourDatabase1.YourSchema2.YourTable2
YourServer.YourDatabase2.YourSchema1.YourTable1

jika Anda tidak menggunakan SQL Server 2005 atau lebih tinggi, ganti DECLARE @AllTables table dengan CREATE TABLE #AllTables dan kemudian setiap @AllTables dengan #AllTables dan itu akan berhasil.

EDIT
ini adalah versi yang memungkinkan parameter pencarian untuk digunakan pada setiap bagian atau bagian dari server+database+schema+nama tabel:

SET NOCOUNT ON
DECLARE @AllTables table (CompleteTableName nvarchar(4000))
DECLARE @Search nvarchar(4000)
       ,@SQL   nvarchar(4000)
SET @Search=null --all rows
SET @SQL='select @@SERVERNAME+''.''+''?''+''.''+s.name+''.''+t.name from [?].sys.tables t inner join sys.schemas s on t.schema_id=s.schema_id WHERE @@SERVERNAME+''.''+''?''+''.''+s.name+''.''+t.name LIKE ''%'+ISNULL(@SEARCH,'')+'%'''

INSERT INTO @AllTables (CompleteTableName)
    EXEC sp_msforeachdb @SQL
SET NOCOUNT OFF
SELECT * FROM @AllTables ORDER BY 1

setel @Search ke NULL untuk semua tabel, setel ke hal-hal seperti 'dbo.users' atau 'users' atau '.master.dbo' atau bahkan sertakan wildcard seperti '.master.%.u', dll.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Panduan pemula untuk tabel SQL

  2. SQL dinamis untuk menghasilkan nama kolom?

  3. Menilai Pengaturan Pemantauan Kinerja Basis Data Anda

  4. Bagaimana cara menghapus tag HTML dari string di SQL Server?

  5. Cara Memilih Setiap Baris Di Mana Nilai Kolom TIDAK Berbeda