我在SQL Server 2012中有一个架构.
是否有一个命令可以在SQL中运行以获取该模式中由用户填充的所有表的名称?
我知道MySQL的类似查询,SHOW TABLES;但这不适用于SQL Server.
Kev*_*Kev 72
您应该真正使用INFORMATION_SCHEMA数据库中的视图:
USE <your_database_name>
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES
Run Code Online (Sandbox Code Playgroud)
然后,您可以按表模式和/或表类型对其进行过滤,例如
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
Run Code Online (Sandbox Code Playgroud)
Aar*_*and 38
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';
Run Code Online (Sandbox Code Playgroud)
小智 9
SQL Server 2005,2008,2012或2014:
SELECT * FROM information_schema.tables WHERE TABLE_TYPE='BASE TABLE' AND TABLE_SCHEMA = 'dbo'
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息: 如何使用TSQL获取数据库中所有表的列表?
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
Run Code Online (Sandbox Code Playgroud)
SELECT *
FROM sys.tables t
INNER JOIN sys.objects o on o.object_id = t.object_id
WHERE o.is_ms_shipped = 0;
Run Code Online (Sandbox Code Playgroud)