SQL Server更新集返回多个值

时间:2018-11-08 11:13:01

标签: sql-server sql-update ssms

我想用[Référence]列填充[ID联系人]列。关于如何调试此查询的任何线索?

alter table [DB_Test].[dbo].[Check_Result]
add [ID contact] varchar(200)

update [DB_Test].[dbo].[Check_Result]
    set [ID contact] = (select [Référence]
                        from [DB_Test].[dbo].All_Contracts)

我收到此错误: 子查询返回的值超过1。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。 该声明已终止。

2 个答案:

答案 0 :(得分:0)

我假设两个表之间存在关系,如果可以,则可以执行JOIN

UPDATE 
     cr.[ID contact] = cn.[Référence]
FROM [DB_Test].[dbo].[Check_Result] cr INNER JOIN
     [DB_Test].[dbo].All_Contracts cn
     ON cr.<col> = cn.<col>;

答案 1 :(得分:0)

错误的原因如下,查询返回多个[Référence]值。

select [Référence] from [DB_Test].[dbo].All_Contracts

您需要在[dbo]。[Check_Result]表和[dbo] .All_Contracts

之间保持外键关系。

之后,您可以将两个表连接起来,并从[Référence]更新[ID联系人]

UPDATE C
SET C.[ID contact] = AC.[Référence]
FROM [DB_Test].[dbo].[Check_Result] C
INNER JOIN [DB_Test].[dbo].All_Contracts AC ON AC.FORIEGNKEY_COL = C.FORIEGNKEY_COL