programing

How do I use an INSERT statement's OUTPUT clause to get the identity value?

padding 2023. 4. 23. 10:07
반응형

How do I use an INSERT statement's OUTPUT clause to get the identity value?

If I have an insert statement such as:

INSERT INTO MyTable
(  
  Name,
  Address,
  PhoneNo
)
VALUES
(
  'Yatrix',
   '1234 Address Stuff',
   '1112223333'
)

설정 방법@var INT새로운 행의 ID 값(호칭)으로 이동합니다.IdOUTPUT 절을 사용합니까?삽입된 퍼팅 샘플을 본 적이 있어요.예를 들어 테이블 변수에 이름을 지정하지만 테이블 변수가 아닌 변수에 이름을 지정할 수 없습니다.

해봤어요OUPUT INSERTED.Id AS @var,SET @var = INSERTED.Id둘 다 효과가 없었습니다.

You can either have the newly inserted ID being output to the SSMS console like this:

INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')

이것은, 예를 들면 「」로부터도 사용할 수 있습니다.C#, ID를 호출 앱으로 되돌려야 할 경우 SQL 쿼리를 실행하기만 하면 됩니다..ExecuteScalar()(의 일부.ExecuteNonQuery())의 결과를 읽습니다.ID뒤로.

또는 새로 삽입된 파일을 캡처해야 하는 경우IDT-SQL 내부(예를 들어 추후 처리를 위해)에 테이블 변수를 작성해야 합니다.

DECLARE @OutputTbl TABLE (ID INT)

INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')

이렇게 하면 여러 개의 값을 다음과 같이 입력할 수 있습니다.@OutputTbl그리고 그것들을 더 처리해 주세요.또한 "일반" 임시 테이블을 사용할 수도 있습니다.#temp또는 여기서 "출력 대상"으로 "실제" 영속적인 테이블도 사용할 수 있습니다.

ReferenceURL : https://stackoverflow.com/questions/10999396/how-do-i-use-an-insert-statements-output-clause-to-get-the-identity-value

반응형