Wie kann ich das Äquivalent von "SHOW TABLES" in T-SQL machen?


31

Ich möchte eine Tabelle in meiner SQL Server 2005 Express-Datenbank anhand des Tabellennamens suchen. In MySQL würde ich SHOW TABLES LIKE "Datasheet%" verwenden, aber in T-SQL wirft dies einen Fehler (es versucht, nach einer SHOW gespeicherten Prozedur zu suchen und schlägt fehl).

Ist das möglich, und wenn ja, wie?

32

Dies wird Ihnen eine Liste der Tabellen in der aktuellen Datenbank:

Select Table_name as "Table name" 
From Information_schema.Tables 
Where Table_type = 'BASE TABLE' and Objectproperty 
(Object_id(Table_name), 'IsMsShipped') = 0 

Einige andere nützliche T-SQL-Bits finden Sie hier: http://www.devx.com/tips/Tip/28529


5

Try this:

select * from information_schema.columns 
where table_name = 'yourTableName' 

sehen auch für andere information_schema Ansichten.


7

Versuchen Sie, diese

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE 'Datasheet%' 

2

Versuchen folgende

SELECT table_name 
FROM information_schema.tables 
WHERE 
table_name LIKE 'Datasheet%' 

40

Ich weiß, dass Sie bereits eine Antwort akzeptiert haben, aber warum nicht einfach die viel einfachere sp_tables verwenden?

sp_tables 'Database_Name' 
  0

Dies ist eine viel bessere Lösung - ich kann es mir tatsächlich merken! Vielen Dank 26 jun. 152015-06-26 14:00:35


1

MS wird Phasing langsam Methoden aus anderen als information_schema Ansichten. also für die Vorwärtskompatibilität immer diese verwenden.


3

Und, seit INFORMATION_SCHEMA is part of the SQL-92 standard, eine gute Anzahl von Datenbanken unterstützt es - einschließlich MySQL.


1

Versuchen Sie es:

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE '%' 

4

Try this:

USE your_database 
go 
Sp_tables 
go 

0

Ich weiß, dass dies eine alte Frage, aber ich habe über sie gerade kommen.

Normalerweise würde ich sagen, greifen Sie auf die information_schema.tables Ansicht, aber auf das Herausfinden des PDO kann nicht auf diese Datenbank von einem anderen Datenobjekt zugreifen, das ich brauchte, um einen anderen Weg zu finden. Sieht aus wie sp_tables 'Database_Name ist eine bessere Möglichkeit, wenn Sie einen nicht privilegierten Benutzer oder PDO verwenden.