2つのテーブルのデータを含む行を挿入しようとしています。最初のテーブルはユーザーのAspNetUsersで、2番目のテーブルはAspNetUserRolesです。私はすべてのユーザーに同じ役割を与えたいと思います。私は、次のことを試してみました:複数のSELECTSを持つ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は、各ユーザーと同じロールIDを挿入するように変更する必要があります。
私はカーソルを使う必要があるかもしれないと思いますが、どうすればいいですか?私はMS SQL Serverを使用しています。
は、彼らがすべての一致するフィールド – TheGameiswar
なぜあなたはストアドプロシージャを使用しないでくださいを持っていない別の方法ですか? –
内部サブクエリの1つが複数の行を返します。サブクラスをスキップして、代わりに結合を実行します。 – jarlh