Sql server 如何在一个连接下查看特定服务器的所有数据库?

Sql server 如何在一个连接下查看特定服务器的所有数据库?,sql-server,database-connection,ssms,Sql Server,Database Connection,Ssms,我试图从DB1中读取数据,对其进行一些计算,然后将其存储在DB2中。DB1和DB2都在同一台服务器上 但是,当我连接到SSMS上的服务器时,它不会显示同一连接下的DB1和DB2。如何连接到服务器,使其在同一连接中显示DB1和DB2?一个连接只能有一个数据库上下文。但是,可以使用由三部分组成的名称将对象名称限定为其他数据库名称,从而允许查询使用同一连接上其他数据库中的对象 USE Database1; --use Database1 as default context SELECT

我试图从DB1中读取数据,对其进行一些计算,然后将其存储在DB2中。DB1和DB2都在同一台服务器上


但是,当我连接到SSMS上的服务器时,它不会显示同一连接下的DB1和DB2。如何连接到服务器,使其在同一连接中显示DB1和DB2?

一个连接只能有一个数据库上下文。但是,可以使用由三部分组成的名称将对象名称限定为其他数据库名称,从而允许查询使用同一连接上其他数据库中的对象

USE Database1; --use Database1 as default context
SELECT 
      'Database1' AS DatabaseName
    , OBJECT_SCHEMA_NAME(object_id) AS SchemaName
    , name AS TableName
FROM sys.tables -- 1 or 2-part name uses current database
UNION ALL
SELECT
      'Database2' AS DatabaseName
    , OBJECT_SCHEMA_NAME(object_id) AS SchemaName
    , name AS TableName
FROM Database2.sys.tables; -- 3-part name uses other database

此外,4部分名称允许用户通过链接服务器使用其他服务器上的对象。

感谢Dan的帮助-4部分名称对我不起作用。最终在DB2中创建了一个外部表,它允许我查询存储在DB1中的数据