使用新主键和特定外键复制同一表中的行

时间:2013-10-23 14:15:23

标签: sql-server-2008

我有两个表会话通过 sessionid 将课程与会话相关联 我想将类名复制到具有新 classid 的相同类表中,并使用新的外键(会话表中为2)。

类的表名

 sessionid    classid    class   
1               1         5th
1               2         6th
1               3         7th

,会话表是

sessionid    session
1            2013-2014
2            2014-2015

想要复制到2014-2015会议

希望你理解

Insert Into classes (sessionid,classname) Values ((select sessionid from session where session=@session),classname) 

这就是我的反应。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情

Insert Into classes (sessionid,classname) 
Values (SELECT 2, classname 
         FROM classes
         WHERE sessionid = 1) 

我没有对此进行过测试,我相信我可能会发现一些问题,所以如果有人发现我的代码存在问题,请发表评论,我会修复它。

<强>更新

我可能更改了列名称,因此如果你所做的只是复制和粘贴,你的列名可能没有匹配。和@ Fauzi88评论说我不需要在查询中使用VALUES

希望这有助于

我运行了以下查询,并在SQLFiddle

上执行
INSERT INTO classes (sessionid,class)
SELECT 2, class 
FROM classes
WHERE sessionid = 1

你可能想尝试这个而不是前一个

逻辑是一样的。