0

我正在尝试使用这样的 sql 命令,但由于一些明显的原因它不起作用。你能告诉我这种命令的出路是什么吗?

   INSERT INTO ContentToGroup(ContentId,ClassSectionId)  
   VALUES (16, Select ClassSectionId from ClassSectionMaster where ClassId=1)
4

4 回答 4

4
INSERT INTO ContentToGroup (ContentId,ClassSectionId)
Select 16, ClassSectionId
from ClassSectionMaster
where classid = 1
于 2011-06-20T05:59:18.463 回答
2

您不能将INSERT .... VALUES....与“内联”选择语句混合使用。使用VALUES关键字,您必须提供所有值作为文字或 SQL 变量。

您需要先选择值并将其分配给变量:

DECLARE @ClassSectionID INT

SELECT @ClassSectionID = ClassSectionID 
FROM dbo.ClassSectionMaster WHERE ClassId = 1

INSERT INTO ContentToGroup(ContentId,ClassSectionId)  
VALUES (16, @ClassSectionID)

或者然后使用SELECT其他人显示的语句来提供所有值(然后省略VALUES关键字)

于 2011-06-20T06:01:19.500 回答
2
INSERT INTO ContentToGroup(ContentId,ClassSectionId) Select 16, ClassSectionId from ClassSectionMaster where ClassId=1
于 2011-06-20T06:01:39.940 回答
1

首先,您需要在使用嵌套查询时删除 VALUES。还请尝试在字段名称前面指定表名称,以防导致您的歧义。

INSERT INTO ContentToGroup(ContentId,ClassSectionId) 
    SELECT 16, ClassSectionMaster.ClassSectionId 
    FROM ClassSectionMaster 
    WHERE ClassSectionMaster.ClassId=1
于 2011-06-20T06:05:14.583 回答