Вставить оператор на основе оператора выбора с несколькими столбцами - PullRequest
1 голос
/ 08 декабря 2011

Мне нужно создать статическую «копию» значений из одной таблицы и сохранить их в другой.

Лучший способ, которым я знаю, как это сделать, - это передать значения из БД в мое приложение,перебрать их и объединить несколько операторов INSERT, а затем выполнить запрос.

Есть ли способ сделать это без обратной передачи между приложением и базой данных?

Я надеялся, что-то подобноебудет работать:

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

, но это не так.

(все это int, поэтому не стоит беспокоиться)

Ответы [ 3 ]

2 голосов
/ 08 декабря 2011

Просто удалите values из предложения insert into.

Insert Into dbo.StudentProject 
Select StudentID, ProjectID  
From dbo.StudentProjectSimulation 
Where SimulationID = 1;
2 голосов
/ 08 декабря 2011

В качестве альтернативы для явного определения столбцов для вставки в использование, где вы подставляете Student_Col и ProjectID_Col для соответствующих имен столбцов в dbo.StudentProject

Insert Into dbo.StudentProject 
  (
    Student_Col,
    ProjectID_Col
  )
Select 
  StudentID, 
  ProjectID 
From dbo.StudentProjectSimulation 
Where SimulationID = 1
2 голосов
/ 08 декабря 2011

Ты очень близко:

INSERT INTO dbo.StudentProject 
SELECT StudentID, ProjectID 
FROM dbo.StudentProjectSimulation
WHERE SimulationID = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...