如何在SQL服务器中执行跨服务器插入?

How to perform cross server insert in SQL Server?

我在 2 个服务器中有 3 个表。

  1. Table服务器A中的A
  2. Table 服务器 B 中的 B
  3. Table 服务器 B 中的 C

服务器 A 和服务器 B 已链接。

Table答:

Fruit   Quantity   Total Price
Apple     2            4 
Banana    4           12
Orange    6           24

Table乙:

Fruit    Unit Price 
Apple        2
Banana       3
Orange       4

Table C:

Fruit   Quantity    Unit Price   Total Price
Apple     2             2             4 
Banana    4             3            12
Orange    6             4            24

我需要从 Table A 到 Table C 获取数据。 我还需要参考 Table B 以获得 Table C 所需的单价。 我所做的是:

insert into [Server B].[DatabaseName].[SchemaName].[Table C]
select 
Fruit, Quantity, '', Total Price 
from table A

但是我还是无法得到水果的单价。 我可以知道我可以使用哪种查询来获取单价并将其放入上面的 select 查询中吗?

要完成答案,您可以这样做:

insert into [Server B].[DatabaseName].[SchemaName].[Table C]
select a.Fruit, a.Quantity, b.[unit price], a.[Total Price]
from table A
join [Server B].[DatabaseName].[SchemaName].[Table B] B on A.fruit = B.fruit

说明

您将 table a 加入 table b,这样您就可以从 b 获取单价,从 a 获取其余数据。可用于将数据插入 c

此查询可能适合您。

insert into [Server B].[DatabaseName].[SchemaName].[Table C]
select 
A.[Fruit], A.[Quantity], B.[Unit Price], A.[Total Price]
from A join B
ON A.[Fruit] = B.[Fruit]
    with temp as 
    (
    select 
    A.Fruit, A.Quantity, B.[Unit Price], A.[Total Price] 
    from [Server A].[DatabaseName].[SchemaName].[Table A]
    inner join [Server B].[DatabaseName].[SchemaName].[Table B] on A.Fruit=B.Fruit
    )

    insert into [Server B].[DatabaseName].[SchemaName].[Table C]
    select A.Fruit, A.Quantity, B.[UnitPrice], A.[Total Price] from temp

---Or---

    insert into [Server B].[DatabaseName].[SchemaName].[Table C]
    select   A.Fruit, A.Quantity, B.[Unit Price], A.[Total Price] 
    from [Server A].[DatabaseName].[SchemaName].[Table A]
    inner join [Server B].[DatabaseName].[SchemaName].[Table B] on A.Fruit=B.Fruit

当然,您可以使用 Linked Server sp_addlinkedserver

我想你已经设置好了