SQL 服务器,来自不同对象连接的子查询

SQL Server, Sub-query from different object connection

我正忙于实施新的 ERP 系统,进行数据迁移。 在迁移数据时 - 实时环境不断发展。 所以我们仍处于测试阶段,专注于所有脚本。 现在,我开始的每个新字段/区域都希望更新不在前一阶段的新创建记录。

所以我们坐在不同的环境中:

所以在 SQL - 我有两个连接。

我想做的是 select 来自旧服务器的主数据,在新服务器上已经有主要帐户:

SELECT 
customer_code
FROM customer  --10.0.0.2 old server

 WHERE customer_code IN

 (
  USE datamigration  --10.0.0.1 new server
  SELECT cust_code FROM [dbo].[new_table]  --data on new server
 )

所以,只显示新服务器上有主文件的旧服务器的记录。

谢谢!

系统 Windows 服务器 2012 SQL 服务器 2014

设置一个linked server and use four part naming convention.

SELECT 
customer_code
FROM customer
WHERE customer_code IN
(
  SELECT cust_code FROM [Linked server].[datamigration].[dbo].[new_table]
)

NB 如果 SELECT cust_code FROM [Linked server].[datamigration].[dbo].[new_table] return 有任何 NULL 值,你的整个 SQL 语句将 return 没有。

只需使用链接服务器。 添加链接服务器后,您可以从其他服务器引用它。

假设将您的新服务器链接到名称为 [10.0.0.1]

的旧服务器

现在您可以简单地使用(从旧服务器)

SELECT customer_code
FROM customer  --10.0.0.2 old server
WHERE customer_code IN (  
  SELECT cust_code FROM [10.0.0.1].[NewDatabaseName].[dbo].[new_table]  --data on new server
)

我将使用连接语法

SELECT customer_code, cust_code
FROM customer  t_old --10.0.0.2 old server
join [10.0.0.1].[NewDatabaseName].[dbo].[new_table] t_new on customer_code = cust_code