如何查找任何表的数据库名称

时间:2018-11-05 10:44:30

标签: sql-server

创建表并忘记创建表的数据库时如何查找特定表的数据库名。

4 个答案:

答案 0 :(得分:1)

我已经找到了解决方案,我们可以在创建表的地方简单地找到一个数据库。

SELECT DISTINCT  DB_NAME(database_id)
FROM [sys].[dm_db_index_operational_stats](NULL,NULL,NULL,NULL) 
WHERE OBJECT_NAME(object_id,database_id) = 'tablename'

答案 1 :(得分:1)

尝试使用此EXEC sp_MSforeachdb

EXEC sp_MSforeachdb 'USE ? SELECT sc.TABLE_CATALOG, sc.TABLE_SCHEMA, sc.TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS  sc WHERE TABLE_NAME=''YourTableName'''

答案 2 :(得分:0)

如果您使用的是SQL Server 2012或更高版本,则只需使用INFORMATION_SCHEMA即可找到数据库名称,例如

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME ='your_table_name'

“ TABLE_CATALOG”列显示“数据库名称”。

答案 3 :(得分:0)

没有针对您的问题的SQL Server就绪解决方案。 要解决此问题,您需要遍历每个数据库,并将信息模式放入新表中,然后对其进行查询。

某些想法可以在下面的网站中找到:

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