2012-03-12 3 views
11

大学に居住するための申請書を作成しました。テーブル(客室)の1つには、すべての客室のリストとその現在/最大の占有率があります。さて、私は "semester"という新しい列を追加し、既存のすべての行にsemester値が "fall"になるように設定しました。これらの行をすべてコピー&ペーストしてテーブルに貼り付けたいのですが、学期の値を「春」に変更します。結果は、私が始めたときの2倍の行になるはずです。半分は学期の値に、半分は秋になります。これを達成するための最良の方法は何ですか?あなたはちょうどあなたが、テーブルのコピーを更新するコマンドを実行できるSQL Server Management Studioを内部でこれをやろうとしているとしている場合異なる値を持つ同じSQLテーブルに行をコピーして貼り付け

答えて

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

まあ

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

(あなたの部屋と宿泊人数の列の名前を想定)複製されたテーブルで学期を春に設定し、ウィザードを使用してクローンテーブルから既存のテーブルにデータを追加します。

プログラミング言語が分かっている場合は、すべてのデータを取り込み、学期を変更して既存のテーブルにデータを挿入します。

注:その他の回答はこれを達成するためのより良い方法です。

5

関連する列の数にかかわらず、一時表を使用すると簡単です。

SELECT * INTO #ROOMS FROM ROOMS; 
UPDATE #ROOMS SET SEMESTER='spring'; 
INSERT INTO ROOMS SELECT * FROM #ROOMS; 
関連する問題