gpt4 book ai didi

sql - 当它们在不同的服务器上时如何从其他表更新 SQL 表

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:23 25 4
gpt4 key购买 nike

我已经运行了以下命令来包含另一个服务器实例。

EXEC sp_addlinkedserver @server='Server'

现在我正在尝试使用这个来同步这些数据库:

UPDATE
[Server].[ServerDB].[dbo].[tableName]
SET
[Server].[ServerDB].[dbo].[tableName].[columnName] = [LocalDB].[dbo].[tableName].[columnName]
FROM
[Server].[ServerDB].[dbo].[tableName], [LocalDB].[dbo].[tableName]
WHERE
[Server].[ServerDB].[dbo].[tableName].id = [LocalDB].[dbo].[tableName].id

这给了我以下错误:

The objects "LocalDB.dbo.tableName" and "Server.ServerDB.dbo.tableName" in the FROM clause have the same exposed names. Use correlation names to distinguish them.

所以在摆弄它之后,我尝试了各种演绎:

UPDATE
[Server].[ServerDB].[dbo].[tableName]
SET
[Server].[ServerDB].[dbo].[tableName].[columnName] = [LocalDB].[dbo].[tableName].[columnName]
FROM
[Server].[ServerDB].[dbo].[tableName] serverDB
INNER JOIN
[LocalDB].[dbo].[tableName] localDB
ON
serverDB.id = localDB.id

但它们都给我某种错误的再现:

The multi-part identifier "Server.ServerDB.dbo.tableName.allrows" could not be bound.

有人能发现我遗漏了什么吗?

最佳答案

使用联接更新时需要使用此语法:

UPDATE s
SET s.[columnName] = l.[columnName]
FROM
[Server].[ServerDB].[dbo].[tableName] s
INNER JOIN
[LocalDB].[dbo].[tableName] l
ON
l.id = s.id

关于sql - 当它们在不同的服务器上时如何从其他表更新 SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30897519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com