2011-08-09 3 views
1

일부 값을 변경 ... 내가 기존에 기초한 새로운 조직을 만들려면 조직 및 회원선택 테이블에서 다른 테이블에 새 레코드를 삽입하지만 많은 관계로 하나 둘 사이에 테이블이

말 하나 (ID 111) 및 모든 회원을 복사하지만 새로 만든 조직과 그들을 연결합니다. 그래서 지금

일부 의사 코드 ..

-- 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.

이를 달성하는 가장 좋은 방법은 무엇입니까 ... 나에게 루프를해야하고 삽입하거나 할 수있는 나는 삽입]을 사용 - 방법에서 선택

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

감사 믹

+1

삽입/선택하는 것은 더 적은 리소스를 사용, 더 빨리, 그리고 더 간단 너무 것,이 작업을 수행하는 가장 좋은 방법입니다. –

+0

감사합니다 케빈 ... 방금 그 일을하고 치료를 ... 그냥 변수를 substuiting에서 확실하지만 그것을 빨아 결정 :-) – Doiremik

답변

7

단지에 v_orgID를 삽입 숫자로 쿼리 :

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

새 OrganizationId로 999를 입력하십시오.

+0

+1 맞습니다! 그리고 오신 것을 환영합니다! – Bohemian

+0

Thanks Gents ... 모두 지금 정렬 됨 :-) – Doiremik

3

사용 INSERT/SELECT, 값 변경 :

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

죄송하지만 Gent를 명확히하기 위해 ... 나는 999 개의 코드를 예제별로 사용하지 않았지만 변수 대체를 사용했습니다 ... INSERT INTO Members (OrganisationID, Membername, MemberAddress) (SELECT v_orgID, MemberName, MemberAddress FROM Member OrganisationId = 111) 안부 믹크 – Doiremik

관련 문제