it-swarm.com.de

Listennamen aller Tabellen in einem SQL Server 2012-Schema

Ich habe ein Schema in SQL Server 2012.

Gibt es einen Befehl, den ich in SQL ausführen kann, um die Namen aller Tabellen in diesem Schema zu erhalten, die vom Benutzer gefüllt wurden?

Ich kenne eine ähnliche Abfrage für MySQL SHOW TABLES;, dies funktioniert jedoch nicht mit SQL Server.

37
AnkitGarg43

Sie sollten wirklich die INFORMATION_SCHEMA-Ansichten in Ihrer Datenbank verwenden:

USE <your_database_name>
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES

Sie können das dann nach Tabellenschema und/oder Tabellentyp filtern, z.

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
62
Kev
SELECT t.name 
  FROM sys.tables AS t
  INNER JOIN sys.schemas AS s
  ON t.[schema_id] = s.[schema_id]
  WHERE s.name = N'schema_name';
29
Aaron Bertrand

SQL Server 2005, 2008, 2012 oder 2014:

SELECT * FROM information_schema.tables WHERE TABLE_TYPE='BASE TABLE' AND TABLE_SCHEMA = 'dbo'

Für weitere Details: Wie bekomme ich eine Liste aller Tabellen in einer Datenbank, die TSQL verwendet?

9
Nandoviski
SELECT t1.name AS [Schema], t2.name AS [Table]
FROM sys.schemas t1
INNER JOIN sys.tables t2
ON t2.schema_id = t1.schema_id
ORDER BY t1.name,t2.name
3
Lorena Pita
select * from [schema_name].sys.tables

Das sollte funktionieren. Stellen Sie sicher, dass Sie sich auf dem Server befinden, der aus Ihrem "[schema_name]" besteht.

0
Saman Kapali
SELECT *
FROM sys.tables t
INNER JOIN sys.objects o on o.object_id = t.object_id
WHERE o.is_ms_shipped = 0;
0
jtimperley