Копировать и вставлять строки в одну и ту же таблицу SQL с разными значениями

Я написал заявку на жительство в колледже. В одной из таблиц (комнат) у меня есть список всех комнат и их текущее/максимальное размещение. Теперь я добавил новый столбец с именем "семестр" и установил все существующие строки, чтобы иметь значение семестра "fall". Теперь я хочу скопировать и вставить все эти строки в таблицу, но изменить значение семестра на "spring". Результат должен быть в два раза больше строк, чем я начал - половина с падением в семестре и половина с падением. Хотите узнать, как лучше всего это сделать?

Ответ 1

INSERT INTO rooms
(roomname, current_occupancy, max_occupancy, semester)
SELECT roomname, current_occupancy, max_occupancy,'spring'
FROM rooms
WHERE [semester]='fall'

(при условии, что имена для столбцов вашей комнаты и места размещения)

Ответ 2

Используйте временную таблицу, чтобы сделать ее простой, независимо от того, сколько столбцов задействовано;

SELECT * INTO #ROOMS FROM ROOMS;
UPDATE #ROOMS SET SEMESTER='spring';
INSERT INTO ROOMS SELECT * FROM #ROOMS;

Ответ 3

Insert Into Rooms
     Select col1, col2, col3, 'Spring' as Semester -- select each column in order except 'Semester', pass it in literally as 'Spring'
     From rooms where
     Semester = 'Fall'

Ответ 4

Хорошо, если вы просто пытаетесь сделать это внутри Sql Server Management Studio, вы можете скопировать таблицу, запустить команду "Обновить" и установить семестр в spring в клонированной таблице, а затем использовать мастер для добавления данных из клонированную таблицу к существующей таблице.

Если вы знаете язык программирования, вы можете извлечь все данные, изменить семестр, а затем вставить данные в существующую таблицу.

Примечание. Другие ответы - намного лучший способ достичь этого.