Я пытаюсь вставить строки с данными из 2 таблиц. Первой таблицей являются мои пользователи AspNetUsers и вторая таблица AspNetUserRoles. Я хочу дать всем пользователям ту же роль. Я попытался следующие:SQL INSERT INTO с несколькими SELECTS из разных таблиц
INSERT INTO [MyDB].[dbo].[AspNetUserRoles] ([UserId], [RoleId])
SELECT (SELECT Id FROM [MyDB].[dbo].AspNetUsers) AS UserId,
(SELECT Id FROM [MyDB].[dbo].[AspNetRoles] WHERE Name = 'Intermediary') AS RoleId
Я получаю ошибку:
Subquery вернулся более чем на 1 значение. Это недопустимо, если подзапрос следует за =,! =, <, < =,>,> = или когда подзапрос используется как выражение
Это потому, что запрос выбирает всех пользователей, которые я хочу, но мой SQL должен быть изменен для вставки каждого пользователя и того же RoleId.
Думаю, мне, возможно, понадобится использовать курсор или как мне это сделать? Я использую MS SQL Server.
у них есть какие-либо совпадающие поля – TheGameiswar
Почему не следует использовать хранимые процедуры? –
Один из внутренних подзапросов возвращает более одной строки. Пропустите подзапросы, вместо этого подключитесь. – jarlh