0
나는 테이블 반환 매개 변수 (TVP)와 함께 테이블 A
에 레코드의 다음SQL 서버 : 출력 절
- 삽입 번호를 시도하고에 삽입 배치. 이 TVP는하여 TVP에
A
에서 삽입 된 ID와 해당 여분의 열을 얻고 다른 테이블 여기B
에 추가하는 것은 내가 노력 무엇 A
유형 :
CREATE TYPE tvp AS TABLE
(
id int,
otherid int,
name nvarchar(50),
age int
);
테이블 :
CREATE TABLE A (
[id_A] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50),
[age] [int]
);
CREATE TABLE B (
[id_B] [int] IDENTITY(1,1) NOT NULL,
[id_A] [int],
[otherid] [int]
);
,451,515, 삽입 :
DECLARE @a1 AS tvp;
DECLARE @a2 AS tvp
-- create a tvp (dummy data here - will be passed to as a param to an SP)
INSERT INTO @a1 (name, age, otherid) VALUES ('yy', 10, 99999), ('bb', 20, 88888);
INSERT INTO A (name, age)
OUTPUT
inserted.id_A,
inserted.name,
inserted.age,
a.otherid -- <== isn't accepted here
INTO @a2 (id, name, age, otherid)
SELECT name, age FROM @a1 a;
INSERT INTO B (id_A, otherid) SELECT id, otherid FROM @a2
그러나, 이것은 다른 테이블에서 열을 INSERT
문 (https://msdn.microsoft.com/en-au/library/ms177564.aspx) 허용되지 않기 때문에 내가 기대 추측하는 The multi-part identifier "a.otherid" could not be bound.
와 함께 실패합니다.
from_table_name 는 DELETE, UPDATE의 FROM 절에 포함 된 테이블을 지정하거나 업데이트하거나 삭제할 행을 지정하는 데 사용됩니다 MERGE 문 열 접두사입니다.
이렇게하려면 다른 방법이 있습니까?