基于具有多列的Select语句插入语句

时间:2011-12-08 00:19:54

标签: sql sql-server database tsql

我需要从一个表创建值的静态“副本”并将它们存储在另一个表中。

我知道如何执行此操作的最佳方法是从db获取值到我的应用程序,循环遍历它们并连接多个INSERT语句,然后执行查询。

如果没有应用程序和数据库之间的往返,有没有办法做到这一点?

我希望这样的东西能起作用:

INSERT INTO dbo.StudentProject 
VALUES (SELECT StudentID, ProjectID 
        FROM dbo.StudentProjectSimulation
        WHERE SimulationID = 1)

但事实并非如此。

(一切都是int,所以不用担心)

3 个答案:

答案 0 :(得分:2)

你非常接近:

INSERT INTO dbo.StudentProject 
SELECT StudentID, ProjectID 
FROM dbo.StudentProjectSimulation
WHERE SimulationID = 1

答案 1 :(得分:2)

values子句中删除insert into

Insert Into dbo.StudentProject 
Select StudentID, ProjectID  
From dbo.StudentProjectSimulation 
Where SimulationID = 1;

答案 2 :(得分:2)

或者明确定义要插入的列,使用以下内容替换Student_ColProjectID_Col中的dbo.StudentProject

中的相应列名称
Insert Into dbo.StudentProject 
  (
    Student_Col,
    ProjectID_Col
  )
Select 
  StudentID, 
  ProjectID 
From dbo.StudentProjectSimulation 
Where SimulationID = 1