2012-03-12 19 views
11

Napisałem podanie o mieszkanie rezydentne w college'u. W jednym ze stołów (pokoi) mam listę wszystkich pokoi i ich aktualnej/maksymalnej obłożenie. Teraz dodałem nową kolumnę o nazwie "semestr" i ustawiono wszystkie istniejące wiersze, aby miały wartość semestralną "upadku". Teraz chcę skopiować i wkleić wszystkie te wiersze do tabeli, ale zmienić wartość semestru na "wiosna". Wynik powinien być dwa razy tyle wierszy, od których zacząłem - połowa z wartością w semestrze i połowa z opadaniem. Zastanawiasz się, jaki jest najlepszy sposób na osiągnięcie tego?Kopiowanie i wklejanie wierszy do tej samej tabeli SQL z różnymi wartościami

Odpowiedz

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

(zakładając nazwy za swój pokój i obłożenia kolumny)

4
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' 
1

Dobrze, jeśli jesteś po prostu staramy się robić to wewnątrz SQL Server Management Studio można skopiować tabelę, należy uruchomić polecenie Aktualizuj i ustaw semestr tak, aby pojawił się na sklonowanej tablicy, a następnie użyj kreatora, aby dołączyć dane ze sklonowanej tabeli do istniejącej tabeli.

Jeśli znasz język programowania, możesz pobrać wszystkie dane, zmodyfikować semestr, a następnie wstawić dane do istniejącej tabeli.

Uwaga: Inne odpowiedzi są o wiele lepszym sposobem osiągnięcia tego.

5

Użyj tabeli tymczasowej, aby była prosta, niezależnie od liczby kolumn;

SELECT * INTO #ROOMS FROM ROOMS; 
UPDATE #ROOMS SET SEMESTER='spring'; 
INSERT INTO ROOMS SELECT * FROM #ROOMS; 
Powiązane problemy