SQL语句按名称查找表

时间:2014-06-02 02:35:21

标签: sql sql-server database find tablename

我们在这些数据库中有很多数据库和很多表。我正在寻找一个特定的。我知道表的名称,但手动搜索每个数据库并不容易。我可以用什么SQL语句按名称查找表?

顺便说一句,我们正在使用Microsoft SQL Server Management Studio。也许还有另一种方法可以在这个程序中按名称搜索表格?

3 个答案:

答案 0 :(得分:2)

你说你做了一次搜索,应该引导你阅读这篇文章:

http://blog.sqlauthority.com/2008/04/29/sql-server-find-table-in-every-database-of-sql-server/

如果没有,请遵循这一点。基本上他创建的是一个存储过程,它将搜索您在每个数据库中指定的每个表名。

如果你这样做:

select * from sys.tables where name like '%tablename%'

您需要每次更改数据库,如果您有很多,那么您就会看到问题。

答案 1 :(得分:2)

试试这个:

Select name from DBname.sys.tables where name like '%info'

答案 2 :(得分:1)

以为我会用我现在使用的解决方案更新以找到许多dB中的表格。经过一番搜索,我发现了这个问题:

/*Finds a table across multiple dBs and returns the dB(s) in which the table was found*/
SELECT  DISTINCT DB_NAME(database_id) 
FROM [sys].[dm_db_index_operational_stats](NULL,NULL,NULL,NULL)
WHERE OBJECT_NAME(object_id,database_id) = 'table name'

此查询查找保存表的dB。然后,在Microsoft SQL Server Mgmt Studio中,我转到对象资源管理器窗口,找到查询标识的dB,展开其内容,然后单击Tables文件夹。然后我使用Filter工具按名称查找表。如果过滤器工具在Databases文件夹上工作,但它没有。您必须在过滤前选择Tables文件夹。

这可能不是最好的解决方案,但它对我有用。