我想根据表名在SQL Server 2005 Express数据库中查找表。在MySQL
我会使用SHOW TABLES LIKE "Datasheet%"
,但在T-SQL
中会抛出错误(它会尝试查找SHOW
存储过程并失败)。
这是可能的,如果是的话,怎么样?
答案 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';