我試圖從2個表中插入數據行。第一個表是我的用戶AspNetUsers和第二張表AspNetUserRoles。我想給所有用戶相同的角色。我曾嘗試以下:SQL INSERT INTO與來自不同表的多個選擇
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
我得到的錯誤:
子查詢返回多個值。當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時,這是不允許的
這是因爲查詢選擇了所有我想要的用戶,但我的SQL需要修改以插入每個用戶和相同的RoleId。
我想我可能需要使用遊標,或者我應該怎麼做呢?我正在使用MS SQL Server。
他們有爲什麼你不應該使用存儲過程的任何匹配字段 – TheGameiswar
? –
其中一個內部子查詢返回多個行。跳過子查詢,而不是連接。 – jarlh