如何在T-SQL中执行"SHOW TABLES"的等效操作?

And*_*owe 35 sql t-sql sql-server-2005

我想基于表名在SQL Server 2005 Express数据库中查找表.在MySQL我会使用SHOW TABLES LIKE "Datasheet%",但在T-SQL此抛出一个错误(它试图寻找SHOW存储过程并失败).

这是可能的,如果是的话,怎么样?

小智 46

我知道你已经接受了答案,但为什么不使用更简单的sp_tables呢?

sp_tables 'Database_Name'
Run Code Online (Sandbox Code Playgroud)


Hec*_* Jr 36

这将为您提供当前数据库中的表的列表:

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

其他一些有用的T-SQL位可以在这里找到:http://www.devx.com/tips/Tip/28529

  • 为什么这么复杂 (8认同)

小智 10

试试这个:

USE your_database
go
Sp_tables
go
Run Code Online (Sandbox Code Playgroud)


PJB*_*PJB 8

试试这个

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE 'Datasheet%'
Run Code Online (Sandbox Code Playgroud)


小智 7

不知道表名的人将无法根据上述答案得到结果。

尝试这个

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='dbo'; 
Run Code Online (Sandbox Code Playgroud)


小智 5

试试这个 :

select * from information_schema.columns
where table_name = 'yourTableName'
Run Code Online (Sandbox Code Playgroud)

还寻找其他information_schema观点.