我已经按照其他帖子中的示例来实现此目的但是收到以下错误:
FROM子句中的“otherDB.dbo.someTable”和“someDB.dbo.someTable”对象具有相同的公开名称。使用相关名来区分它们。
这是SQL语句
UPDATE [someDB].[dbo].[someTable]
SET [someDB].[dbo].[someTable].[Name] = [otherDB].[dbo].[someTable].[Name]
FROM [someDB].[dbo].[someTable]
INNER JOIN [otherDB].[dbo].[someTable]
ON [someDB].[dbo].[someTable].[ID] = [otherDB].[dbo].[someTable].[ID]
如您所见,我很简单想要更新[Name]
中[someBD].[someTable]
的{{1}}
从我在其他类似查询中看到的情况来看,这应该有效,但我想知道我是否需要做一些不同的事情,因为它来自不同的数据库?
任何指针/帮助非常感谢。
答案 0 :(得分:5)
您是否尝试过使用别名?
UPDATE db1
SET db1.[Name] = db2.[Name]
FROM [someDB].[dbo].[someTable] db1
INNER JOIN [otherDB].[dbo].[someTable] db2
ON db1.[ID] = db2.[ID]
答案 1 :(得分:-1)
尝试使用别名:
UPDATE
[someDB].[dbo].[someTable]
SET
s.[someDB].[dbo].[someTable].[Name] = o.[otherDB].[dbo].[someTable].[Name]
FROM
[someDB].[dbo].[someTable] s
INNER JOIN
[otherDB].[dbo].[someTable] o
ON
s.[someDB].[dbo].[someTable].[ID] = o.[otherDB].[dbo].[someTable].[ID]
答案 2 :(得分:-1)
嗯,错误消息是要求相关名称。我认为这意味着它希望您为其中一个表名添加别名。试试这个:
UPDATE [someDB].[dbo].[someTable]
SET [someDB].[dbo].[someTable].[Name] = T.[Name]
FROM [someDB].[dbo].[someTable]
INNER JOIN [otherDB].[dbo].[someTable] T
ON [someDB].[dbo].[someTable].[ID] = T.[ID]