SQL 服务器,来自不同对象连接的子查询
SQL Server, Sub-query from different object connection
我正忙于实施新的 ERP 系统,进行数据迁移。
在迁移数据时 - 实时环境不断发展。
所以我们仍处于测试阶段,专注于所有脚本。
现在,我开始的每个新字段/区域都希望更新不在前一阶段的新创建记录。
所以我们坐在不同的环境中:
- 10.0.0.1 - 旧服务器
- 10.0.0.2 - 迁移服务器
所以在 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
我正忙于实施新的 ERP 系统,进行数据迁移。 在迁移数据时 - 实时环境不断发展。 所以我们仍处于测试阶段,专注于所有脚本。 现在,我开始的每个新字段/区域都希望更新不在前一阶段的新创建记录。
所以我们坐在不同的环境中:
- 10.0.0.1 - 旧服务器
- 10.0.0.2 - 迁移服务器
所以在 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