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

时间:2008-09-23 22:02:03

标签: sql tsql sql-server-2005

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

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

11 个答案:

答案 0 :(得分:45)

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

sp_tables 'Database_Name'

答案 1 :(得分:35)

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

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

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

答案 2 :(得分:8)

试试这个:

USE your_database
go
Sp_tables
go

答案 3 :(得分:7)

试试这个

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

答案 4 :(得分:5)

试试这个:

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

还会查找其他information_schema次观看。

答案 5 :(得分:3)

而且,自INFORMATION_SCHEMA is part of the SQL-92 standard以来,很多数据库都支持它 - 包括MySQL

答案 6 :(得分:2)

尝试以下

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

答案 7 :(得分:1)

MS正在逐步淘汰information_schema次观看以外的方法。因此,为了向前兼容,请始终使用这些。

答案 8 :(得分:1)

试一试:

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

答案 9 :(得分:0)

我知道这是一个老问题,但我刚碰到它。

通常我会说访问information_schema.tables视图,但是在发现PDO无法从不同的数据对象访问该数据库时,我需要找到一种不同的方式。使用非特权用户或PDO时,{{1}}看起来更好。

答案 10 :(得分:0)

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

请尝试

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