当前位置:  开发笔记 > 数据库 > 正文

查找跨多个数据库SQL SERVER 2005的表

如何解决《查找跨多个数据库SQLSERVER2005的表》经验,为你挑选了2个好方法。

我将一个表导出到服务器但我找不到该表.也许我没有把正确的目的地数据库.如果我的服务器有多个数据库,而不打开每个数据库,我怎样才能找到这个表?

我使用MS Sql Server Management Studio 2008.



1> 小智..:

粗糙和肮脏,但它会做的工作.

-- Instructions. Replace "table_name_here" with actual table name
sp_MSforeachdb 'USE ?
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N''[table_name_here]'') AND OBJECTPROPERTY(id, N''IsUserTable'') = 1)
BEGIN
  PRINT ''Found in db ?''
END'



2> Martin Smith..:

单程

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'

或者,如果您有理由相信它将dbo在任何数据库的架构中

SELECT name
FROM   sys.databases
WHERE  CASE
         WHEN state_desc = 'ONLINE' 
              THEN OBJECT_ID(QUOTENAME(name) + '.[dbo].[table_name]', 'U')
       END IS NOT NULL 

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有