我使用以下SQL语句将新项目迭代插入迭代表...我可以一次插入多个迭代。迭代表包含以下字段:{ProjectIteratationID(PK),ProjectID,StartDate,EndDate}
INSERT INTO Iterations (ProjectID, StartDate, EndDate) VALUES (...)
我还想做的是将人员分配给我添加的迭代,所以我需要插入到ProjectIterationMember表中。
"INSERT INTO ProjectIterationMember (ProjectIterationID, MemberID) VALUES ((SELECT ProjectIterationID AS pro_it_id FROM Iterations WHERE ProjectID = '" + proj_id + "'), @member_id)";
我收到了错误消息。我的嵌套select语句检索多个结果。
例如,如果我添加两次迭代,将生成PK 13和14。然后,我想将PK复制到ProjectIterationMember表,并为这些迭代ID分配一些MemberID。谢谢你的帮助!
答案 0 :(得分:3)
使用:
INSERT INTO ProjectIterationMember
(ProjectIterationID, MemberID)
SELECT ProjectIterationID AS pro_it_id, @member_id
FROM Iterations
WHERE ProjectID = '" + proj_id + "'
SQL允许您在SELECT子句中提供静态分配的值。
答案 1 :(得分:2)
如果您将insert
与select
结合使用,则必须省略values
关键字。
只需使用列列表后的select
即可。
答案 2 :(得分:0)
使用SCOPE_IDENTITY获取最后一个身份值。
DECLARE @iterationID int;
INSERT INTO Iterations (ProjectID, StartDate, EndDate)
VALUES (@projectID, @startDate, @endDate);
SET @iterationID = SCOPE_IDENTITY();
INSERT INTO ProjectIterationMember (ProjectIterationID, MemberID)
VALUES (@iterationID, @memberID);