このようなSQLコマンドを使用しようとしていますが、いくつかの明らかな理由で機能していません.このタイプのコマンドの解決策を教えていただけますか?
INSERT INTO ContentToGroup(ContentId,ClassSectionId)
VALUES (16, Select ClassSectionId from ClassSectionMaster where ClassId=1)
このようなSQLコマンドを使用しようとしていますが、いくつかの明らかな理由で機能していません.このタイプのコマンドの解決策を教えていただけますか?
INSERT INTO ContentToGroup(ContentId,ClassSectionId)
VALUES (16, Select ClassSectionId from ClassSectionMaster where ClassId=1)
INSERT INTO ContentToGroup (ContentId,ClassSectionId)
Select 16, ClassSectionId
from ClassSectionMaster
where classid = 1
INSERT .... VALUES....
と「インライン」select ステートメントを混在させることはできません。キーワードを使用して、VALUES
すべての値をリテラルまたは SQL 変数として指定する必要があります。
最初に値を選択して変数に割り当てる必要があります。
DECLARE @ClassSectionID INT
SELECT @ClassSectionID = ClassSectionID
FROM dbo.ClassSectionMaster WHERE ClassId = 1
INSERT INTO ContentToGroup(ContentId,ClassSectionId)
VALUES (16, @ClassSectionID)
または、他のSELECT
人が示したステートメントを使用してすべての値を提供します(その後、VALUES
キーワードを省略します)
INSERT INTO ContentToGroup(ContentId,ClassSectionId) Select 16, ClassSectionId from ClassSectionMaster where ClassId=1
ネストされたクエリを使用している場合は、最初に VALUES を削除する必要があります。また、あいまいさを引き起こしている場合に備えて、フィールド名の前にテーブル名を指定してみてください。
INSERT INTO ContentToGroup(ContentId,ClassSectionId)
SELECT 16, ClassSectionMaster.ClassSectionId
FROM ClassSectionMaster
WHERE ClassSectionMaster.ClassId=1