Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 无法更新_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 无法更新

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.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_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')