Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 server 2005 在SQL中将值从一个表复制到另一个表_Sql Server 2005 - Fatal编程技术网

Sql server 2005 在SQL中将值从一个表复制到另一个表

Sql server 2005 在SQL中将值从一个表复制到另一个表,sql-server-2005,Sql Server 2005,我有两张桌子。我需要使用表2中特定列中的值更新表1的所有行。它们具有相同的结构 UPDATE @TempTable SET [MyColumn] = ( SELECT [MyColumn] FROM [udf_AggregateIDs] (@YearId) AS [af] INNER JOIN [MyForm] ON ( [af].[FormID] = [MyForm].[FormID

我有两张桌子。我需要使用表2中特定列中的值更新表1的所有行。它们具有相同的结构

UPDATE @TempTable       
SET [MyColumn] =
    (
    SELECT [MyColumn]
    FROM 
        [udf_AggregateIDs] (@YearId) AS [af]
        INNER JOIN [MyForm] ON
        (
            [af].[FormID] = [MyForm].[FormID] AND
            [af].[FormID] = @MyFormId
        )
    WHERE [Description] = [MyForm].[Description]
    )
我得到一个错误,说子查询返回的值超过1。我只是在中添加了where子句,因为我认为sql很难匹配行,但两个表都有相同的行。 它应该返回多个值,因为我正在尝试将MyColumn的所有行从一个表复制到另一个表。
想法?

描述是否独特

select [Description], count(*) from [MyForm] group by [Description] having count(*)>1

您不需要子查询..只需连接表。。
同样的问题也得到了回答。希望有帮助。

在这里必须猜测,因为您的查询不是自我记录的。MyColumn是否来自函数?@tentable有描述栏吗?谁知道呢,因为你没有给他们加上别名?试试这个。您可能需要调整,因为您知道您的模式,而我们不知道

UPDATE t 
  SET [MyColumn] = func.MyColumn -- have to guess here
  FROM dbo.[udf_AggregateIDs] (@YearId) AS func
  INNER JOIN dbo.MyForm AS f
  ON func.FormID = f.FormID
  INNER JOIN @TempTable AS t
  ON t.Description = f.Description -- guessing here also
WHERE f.FormID = @MyFormID;

为什么我要选择description?如果没有重复项,此查询将返回重复项或什么都不返回。您能否正确地为所有列添加别名,以便我们了解列属于哪个表?函数是否公开MyColumn或MyForm表?
Description
属于哪个表,
@tentable
还是函数?你可能知道你的模式,但你的听众不知道。如果您需要有关修复查询的精确帮助,请提供精确的查询。