it-swarm.com.de

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

Ich möchte nach Tabellen in meiner SQL Server 2005 Express-Datenbank suchen, die auf dem Tabellennamen basieren. In MySQL würde ich SHOW TABLES LIKE "Datasheet%" verwenden, aber in T-SQL wird ein Fehler ausgegeben (es wird nach einer SHOW gespeicherten Prozedur gesucht und schlägt fehl).

Ist das möglich und wenn ja, wie?

32
Andrew Crowe

Dadurch erhalten Sie 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

34
Hector Sosa Jr

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

sp_tables 'Database_Name'
43
JustinD

Versuche dies

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

Versuche dies:

USE your_database
go
Sp_tables
go
7
ducnguyen.lotus

Versuche dies :

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

suchen Sie auch nach anderen information_schema-Ansichten.

5
Mladen

Da INFORMATION_SCHEMA Teil des SQL-92-Standards ist , unterstützen viele Datenbanken dies - einschließlich MySQL .

3
Mark Brackett

Versuchen Sie folgendes

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

Wer den TABELLENNAMEN nicht kennt, kann das Ergebnis gemäß den obigen Antworten nicht erhalten.

VERSUCHE DIES

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='dbo'; 
1

MS setzt andere Methoden als information_schema-Ansichten langsam aus. Verwenden Sie diese für die Vorwärtskompatibilität.

1
Mladen

Versuch es :

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

Ich weiß, das ist eine alte Frage, aber ich bin gerade erst darauf gestoßen.

Normalerweise würde ich sagen, dass Sie auf die information_schema.tables-Ansicht zugreifen, aber wenn Sie herausfinden, dass das PDO diese Datenbank nicht von einem anderen Datenobjekt aus erreichen kann, musste ich einen anderen Weg finden. Sieht so aus, als wäre sp_tables 'Database_Name eine bessere Methode, wenn Sie einen nicht privilegierten Benutzer oder ein PDO verwenden.

0
Chris