삽입하기 직전에 ID 값을 저장하는 방법과 매핑 테이블에 삽입 한 직후에 새 ID 값을 저장하는 방법이 있습니까? 매핑 테이블은 다른 테이블의 외래 키를 업데이트하는 데 사용됩니다.삽입 전후에 ID를 저장 하시겠습니까?
처음에는 이것이 OUTPUT INTO 절에서 가능하다고 생각했지만 삽입 된 값만 삽입 할 수 있습니다. 작업을 수행하기 위해 OUTPUT 절을 모두 사용하는 방법을 잘 모릅니다. 어쩌면 일종의 하위 쿼리일까요?
어쩌면 너무 복잡하기 때문에 SCOPE_IDENTITY 및 하위 쿼리를 사용하여이를 수행 할 수 있습니다.
도움을 주시면 감사하겠습니다.
p.s. 네, ID를 '예약'(더미 행 삽입 후 DBCC CHECKINDENT 삭제)하고 새로 예약 된 ID와 이전 ID를 매핑 테이블에 저장하고 새 ID로 테이블을 업데이트 한 다음 INSERT_IDENTITIES가 켜져있는 상태에서 삽입 작업을하고 있지만 지저분합니다.
이 내용은 SQL Server 2008 R2에 적용됩니다. 여기
이 작동하지 않는 것입니다 : 당신은 신원이 될 것입니다 무엇을 사전에 알 수 없다
INSERT
[SomeTable]
OUTPUT
INSERTED.[Id],
[Id] -- This doesn't work
INTO
[#mappingTable]
SELECT
(SomeColumns)
FROM
[#someOtherTable];
Bummer 삽입을 수행하고 새 ID를 반환하는 OUTPUT 절이있는 CTE가있는 매핑 테이블에서 UPDATE를 수행 할 수 없습니까? – user514848