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

eulz3vhy  于 2021-08-09  发布在  Java
关注(0)|答案(3)|浏览(312)

我在2台服务器上有3个表。
服务器a中的表a
服务器b中的表b
服务器b中的表c
服务器a和服务器b是链接的。
表a:

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

表b:

Fruit    Unit Price 
Apple        2
Banana       3
Orange       4

表c:

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

我需要从表a到表c取数据。我还需要参考表b得到表c所需的单价。我所做的是:

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

但我还是拿不到水果的单价。我可以知道我可以用什么样的查询来获得单价并输入上面的选择查询吗?

5jdjgkvh

5jdjgkvh1#

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\添加链接服务器
我想你已经准备好了

ffdz8vbo

ffdz8vbo2#

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

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 atable b 所以你可以从 b 其他数据来自 a . 可用于将数据插入 c

dphi5xsq

dphi5xsq3#

此查询可能适用于您。

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]

相关问题