2011-08-09 15 views
1

いくつかの値を変更(ID 111)、すべてのメンバーをコピーしますが、新しく作成された組織にそれらを関連付けます。組織とメンバー</p> <p>が、私は、既存のに基づいて新しい組織を作成したいと言う...私は2つのテーブル間の多くの関係で1を持っているテーブルから選択し、別のテーブルに新しいレコードを挿入しますが、

いくつかの擬似コード..

-- Just create a new organisation based on the new name and address 
-- passed to the proc. 
Insert into Organisation (newOrganisationName, newAddress) 
returning Organisation_ID into v_orgID; 

は、だから今、私は新しい組織IDが言う999のv_orgIDに戻ってきたと私は既存の組織からメンバーをコピーしたい111のIDを言うと、これらを関連付けます新しいOrgIDで

これを達成するための最良の方法は何です... Iループべきで、挿入または私はINSERT INTOを使用することができます - 方法

INSERT INTO Members (OrganisationID, Membername, MemberAddress) 
(SELECT v_orgID, MemberName, MemberAddress FROM Member 
WHERE OrganisationId = 111) 

から選択感謝ミック

+1

挿入/選択すると、以下のリソースを使用し、より速くなり、かつsimplierすぎだろう、これを行うための最善の方法です。 –

+0

ありがとうKevin ...ちょうどそれをして、それは治療を働いて...ちょうど変数をsubstuitingで確かにそれを吸うと:-)を参照して決定していない – Doiremik

答えて

7

ちょうどにv_orgIDを挿入数としてクエリ:新しいOrganizationIdとして999については

INSERT INTO ... (SELECT 999, MemberName, MemberAddress FROM Member WHERE OrganisationId = 111) 

+0

+1正解!そして、ようこそ! – Bohemian

+0

感謝のメンズは...すべて – Doiremik

3

使用INSERT/SELECTは、値変更:

INSERT INTO Members (OrganisationID, Membername, MemberAddress) 
SELECT 999, MemberName, MemberAddress FROM Member 
WHERE OrganisationId = 111 
+0

申し訳メンズ:-)今ソートされたが、ただ明確にするために...私はあなたの例ごとにハードコード999をdidntのが、 INSERT INTOメンバー(OrganisationID、のように...変数置換を使用しましたMembername、MemberAddress)(SELECT v_orgID、MemberName、MemberAddress FROM Member OrganisationId = 111) ミックスについて – Doiremik

関連する問題