Ich versuche, Zeilen mit Daten aus 2 Tabellen einzufügen. Die erste Tabelle ist meine Benutzer AspNetUsers und die zweite Tabelle AspNetUserRoles. Ich möchte allen Benutzern die gleiche Rolle geben. Ich habe folgendes versucht:SQL INSERT INTO mit mehreren SELECTS aus verschiedenen Tabellen
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
ich den Fehler:
Unterabfrage gab mehr als 1 Wert. Dies ist nicht zulässig, wenn die Unterabfrage folgt =,! =, <, < =, oder = wenn die Unterabfrage als Ausdruck verwendet wird aber mein SQL muss geändert werden, um jeden Benutzer und dieselbe RoleId einzufügen.
Ich denke, ich könnte einen Cursor verwenden müssen, oder wie soll ich darüber gehen? Ich benutze MS SQL Server.
haben sie passende Felder – TheGameiswar
Warum sollten Sie nicht gespeicherte Prozedur verwenden? –
Eine der inneren Unterabfragen gibt mehr als eine Zeile zurück. Überspringe die Unterabfragen, mach stattdessen Joins. – jarlh