Набор обновлений SQL Server возвращает более одного значения - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу заполнить столбец [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 голосов
/ 08 ноября 2018

Причина ошибки ниже: запрос возвращает несколько значений [Ссылка].

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

Вам необходимо поддерживать отношение внешнего ключа между таблицей [dbo]. [Check_Result] и [dbo] .All_Contracts

После этого вы можете объединить две таблицы и обновить [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
0 голосов
/ 08 ноября 2018

Я предполагаю, что есть связь между двумя таблицами, если это так, то вы можете сделать 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>;
...