Я исхожу из фона C# linq, поэтому я пытаюсь изучить SQL. Мне нужен простой подзапрос, который будет обновлять несколько записей в моей таблице [AccountContact] с новыми UserID, которые соответствуют ContactID в таблице [User]. Я не хочу использовать соединения.Ошибка при обновлении Несколько записей с ошибкой подзапроса SQL
Мой код выглядит следующим образом
UPDATE [dbo].[AccountContact]
SET UserID = (SELECT UserID from [User] WHERE ContactID IS NOT NULL),
ContactID = null
GO
Заранее спасибо Запустив этот код я получаю ошибку
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
your '(SELECT UserID от [User] WHERE ContactID IS NOT NULL)' возвращает более одного значения, и вам нужен только один. Как определяется новый идентификатор пользователя? – Milen
Можете ли вы предоставить некоторые данные образца и желаемые результаты? –
Я знаю, что он возвращает более 1 значения, ему нужно обновить тысячи идентификаторов пользователя в таблице AccountContact. @ Nadeem ваш запрос делает именно то, что моя делает только более длинную версию) В значительной степени мне нужно обновить таблицу AccountContacts. В моей таблице [Пользователь] у меня есть 2 столбца UserID и ContactID. В моей таблице [AccountContact] у меня есть 2 столбца UserID и ContactID. Этот запрос должен указывать все идентификаторы пользователя в таблице [AccountContact] для контакта с контактом ContactID из таблицы [User]. Но поскольку я возвращаю чуть более 3000 записей строк, я получаю ошибку, указанную выше. – user3236075