如何在整个实例中找到一个表?

alo*_*onk 7 sql-server instance

我正在尝试创建一个报告,该报告从名为costomersHR. 我找不到它,因为我们在实例中有数百个数据库。

如何在整个实例中搜索表?

Mar*_*ith 17

要通过代码来做到...

1) 如果您可以假设此表在dbo架构中。

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

2)否则,您可以sys.tables使用类似此代码的内容遍历所有数据库(并在每个数据库中进行查询),以获得更可靠和灵活的 sp_MSforeachdb

  • @AA.SC - 没有。它只是测试特定对象的存在。`[dbname].[dbo].[costomersHR]` 为每个在线数据库替换数据库名称。`OBJECT_ID` 函数如果不存在则返回 `NULL`。 (2认同)

Paw*_*ajs 5

你可以使用这个工具RedGate SQL Search。它真的很棒。

在此处输入图片说明