创建表并忘记创建表的数据库时如何查找特定表的数据库名。
答案 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/