在SQL中识别多个数据库之间的关系

时间:2019-07-09 20:45:40

标签: sql sql-server

我正在将应用程序从一台服务器迁移到另一台服务器。根据此应用程序的连接字符串,它正在连接不同的数据库。这意味着DB1中的视图查询将接触DB2中的表。因此,在迁移此应用程序时,我不断看到“数据库不可用”错误的链,每次看到此类错误时,都必须迁移该特定数据库。

我想知道,由于我们有ER图来了解数据库中表之间的关系,因此SQL Server中是否有任何方法可以了解服务器中不同数据库之间的关系/链接?有什么工具可以做到这一点?

1 个答案:

答案 0 :(得分:1)

根据您拥有的数据库数量,可以通过某种方式快速找到该信息(所需搜索数量=服务器中可用数据库的数量):

  1. 使用Red-get的“ SQL搜索”应用程序 (https://www.red-gate.com/dynamic/products/sql-development/sql-search/download) 并通过选择依次搜索其他数据库名称 您感兴趣的数据库。选择所有对象。
  2. 如果您具有面向元数据的设计(存储过程会循环访问来自不同数据库的其他不同存储过程/函数的名称,这些存储过程/函数作为元数据存储在表中,并使用包装的存储过程执行它们),那么您将拥有使用SQL定位器软件(http://www.sqllocator.com/Downloads.html)在SQL表值中搜索数据库名称。

以上两种软件都是免费的。

  • 您需要安装SSMS(SQL Server Management Studio)才能使用此应用程序。安装后,“ SQL搜索”将作为附件直接在您的SSMS中提供。

  • 通过提供SQL Server名称和SQL Server凭据可以直接使用SQL定位器。

注意:以上步骤将帮助您从同一SQL Server中的特定数据库中查找引用的数据库。如果您需要从Linked Server中查找数据库(无论如何,我都不认为您的问题是这样),那么您将不得不巧妙地利用上述相同的工具,通过搜索外部服务器名称来查找外部服务器引用。