Sql server 2005 在SQL中将值从一个表复制到另一个表
我有两张桌子。我需要使用表2中特定列中的值更新表1的所有行。它们具有相同的结构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
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
还是函数?你可能知道你的模式,但你的听众不知道。如果您需要有关修复查询的精确帮助,请提供精确的查询。