Sql 无法更新
我收到了错误消息: 无法绑定多部分标识符“r.FileNo”Sql 无法更新,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我收到了错误消息: 无法绑定多部分标识符“r.FileNo” 它抱怨是因为您告诉它更新名为r的表/别名,但在上面的表名中找不到该r 您可以将查询重写为: update [RegistryCopy].[dbo].[RegFile_New] SET r.[FileNo] = v.[Cont#Account (New ACC)] where r.[FileNo] IN ( SELECT r.[FileNo] FROM [RegistryCopy].[dbo].[RegFile_
它抱怨是因为您告诉它更新名为
r
的表/别名,但在上面的表名中找不到该r
您可以将查询重写为:
update [RegistryCopy].[dbo].[RegFile_New]
SET r.[FileNo] = v.[Cont#Account (New ACC)]
where r.[FileNo] IN
(
SELECT r.[FileNo]
FROM [RegistryCopy].[dbo].[RegFile_New] as R
INNER JOIN
[Registry_Malta_Recovered].[dbo].OLD_NEW_AccountsFromSap as v ON
r.FileNo] = v.[Acct in legacy (Old ACC)]
where
r.[FileNo] = ('1000040000')
)
似乎“r”和“v”标识符仅可用于子查询
请尝试使用updatefrom
语法,如下所示:
您的声明无效。您指的是内部查询(子查询)中定义的外部查询中的别名,也指的是仅在内部查询中定义的表的外部查询中的字段 这是与您的查询最接近的近似值:
UPDATE r
SET r.[FileNo] = v.[Cont#Account (New ACC)]
FROM [RegistryCopy].[dbo].[RegFile_New] as r
INNER JOIN [Registry_Malta_Recovered].[dbo].OLD_NEW_AccountsFromSap as v
ON r.FileNo] = v.[Acct in legacy (Old ACC)]
WHERE r.[FileNo] = ('1000040000')
我们需要查看这两个表的表定义是什么样子的。是否缺少
[
?是否应该在[r.FileNo]上读取=
或者这是将代码粘贴到SO中的一个打字错误吗?谢谢,伙计。尽管我希望现在就为所有这些记录制作,而不仅仅是文件号1000040000@user1542323那么适当地修改WHERE子句?我不知道你在问什么。
UPDATE r
SET [FileNo] = v.[Cont#Account (New ACC)]
FROM [RegistryCopy].[dbo].[RegFile_New] AS R
INNER JOIN [Registry_Malta_Recovered].[dbo].OLD_NEW_AccountsFromSap AS v
ON r.[FileNo] = v.[Acct in legacy (Old ACC)]
WHERE r.[FileNo] = ('1000040000')