sqlserver 不同数据库的表数据关联查询
时间: 2024-12-31 12:04:56 浏览: 8
SQL Server 中,当需要从不同数据库的表之间进行关联查询时,通常会使用链接服务器(Linked Server)功能,这是一种跨数据库连接的方式。首先,你需要创建链接服务器,将其他数据库作为远程服务器注册到当前服务器上。以下是基本步骤:
1. 创建链接服务器:使用 `CREATE SERVER` 或 `sp_addlinkedserver` 命令创建一个新的链接服务器,指定目标数据库的服务器名、实例名、登录凭据等信息。
```sql
CREATE LINKEDSERVER [name]
ON {LOCAL | [tcp://]server_name[:port]}
WITH ( ...);
```
2. 登录验证:确认有适当的权限可以访问目标数据库,并设置相应的身份验证模式,如 Windows Authentication 或 SQL Server Authentication。
3. 注册数据库:通过 `CREATE DATABASE` 或 `sp_addlinkedsrvdb` 添加已存在的数据库到链接服务器。
4. 使用 JOIN 进行关联查询:在查询语句中,使用 `JOIN` 关键字,结合临时表或 `WITH` 子句(CTE,Common Table Expression),指明跨越链接服务器的数据源。
```sql
SELECT *
FROM OPENQUERY(linked_server_name, 'SELECT * FROM table1') AS source_table
JOIN OPENQUERY(another_linked_server_name, 'SELECT * FROM table2') AS other_source_table
ON source_table.common_column = other_source_table.common_column;
```
阅读全文