문제

내 절차는 다음과 같습니다.

PROCEDURE add_values
AS
BEGIN

   INSERT INTO TABLE_A ...
   SELECT t.id, t.name FROM TABLE_C ("This selection will return multiple records")

END

Tablea에 삽입하는 동안 Tablea에 삽입 된 특정 레코드에 대해 다른 테이블 (TableB)에 삽입하려고합니다.

Tablea와 TableB의 열은 다릅니다. tableb에 삽입하기 전에 함수를 호출하는 것이 현명합니까? - Tablea에 삽입 된 ID를 기반으로 특정 gets 및 세트를 수행하고 싶습니다.

도움이 되었습니까?

해결책

이 시도

입력

declare @tblA table (id int,name varchar(20))
declare @tblB table (id int,name varchar(20))
declare @tblC table (id int identity,name varchar(20))
insert into @tblC 
    select 'name1' union all select 'name2' union all
    select 'name3' union all select 'name4' union all
    select 'name5' union all select 'name6' union all
    select 'name7' union all select 'name8' union all
    select 'name9' union all select 'name10' union all
    select 'name11' union all select 'name12' union all
    select 'name13' union all select 'name14' union all
    select 'name15' union all select 'name16' union all
    select 'name17' union all select 'name18' union all
    select 'name19' union all select 'name20' 

질문

insert @tblA 
output INSERTED.id, INSERTED.Name
into @tblB 
select 
    id,name
from @tblC 
where id % 2 = 0

select * from @tblA
select * from @tblB

산출: 두 표 A & B의 경우

신분증

2   name2
4   name4
6   name6
8   name8
10  name10
12  name12
14  name14
16  name16
18  name18
20  name20

기본적으로 나는 해당 레코드를 ID의 테이블에서 Tablea에 삽입하고 있습니다. 그런 다음 출력 절을 사용하여 Tablea에서 TableB로 값을 삽입합니다.

자세한 내용은 출력 절

이것이 말이되기를 바랍니다

다른 팁

테이블에 데이터를 삽입하는 유일한 방법이라면 트리거를 만들 수 있습니다. (그렇지 않으면 모든 삽입물에서 실행됩니다)

또는 커서를 반복하여 선택에서 삽입 할 수있는 모든 것을 수행 할 수 있습니다.

(커서 예제

최상의 기술은 테이블 정의의 세부 사항 및 관련 쿼리에 따라 다릅니다. 질문의 정보를 기반으로 다음과 같은 것일 수 있습니다.

CREATE PROCEDURE add_values
AS
BEGIN
  BEGIN TRANS
    INSERT INTO TableA
      SELECT id, name FROM TableC
    INSERT INTO TableB
      SELECT id, name FROM TableC
  COMMIT
END

MySQL에서 시도합니다 INSERT..SELECT, 이와 같이:

INSERT INTO tableB SELECT * FROM tableA where id = LAST_INSERT_ID();

http://dev.mysql.com/doc/refman/en/ansi-diff-select-into-table.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top