[SQL] 어떻게 ID 값을 얻기 위해 INSERT 문 OUTPUT 절을 사용합니까?
SQL어떻게 ID 값을 얻기 위해 INSERT 문 OUTPUT 절을 사용합니까?
나는 삽입 문 등이있는 경우 :
INSERT INTO MyTable
(
Name,
Address,
PhoneNo
)
VALUES
(
'Yatrix',
'1234 Address Stuff',
'1112223333'
)
어떻게 OUTPUT 절을 사용하여 (ID라고도 함) 새 행의 ID 값에 @var INT를 설정합니까? 나는 예를 들어, 테이블 변수에 INSERTED.Name 퍼팅의 샘플을 본 적이 있지만 내가 아닌 테이블 변수로를 얻을 수 없습니다.
나는 OUPUT INSERTED.Id AS의 @var, SET의 @var = INSERTED.Id을 시도했지만, 어느 쪽도 아니는 일 없다.
해결법
-
==============================
1.당신도이 같은 SSMS 콘솔에 새로 삽입 된 ID의 존재 출력을 할 수 있습니다 :
당신도이 같은 SSMS 콘솔에 새로 삽입 된 ID의 존재 출력을 할 수 있습니다 :
INSERT INTO MyTable(Name, Address, PhoneNo) OUTPUT INSERTED.ID VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
당신은 예로부터이 사용할 수 있습니다 당신이 당신의 전화 응용 프로그램의 ID를 다시 얻을 필요가있을 때 C #을, -) 단지 (.ExecuteScalar으로 SQL 쿼리를 실행합니다 (대신 .ExecuteNonQuery의 ()) 결과 ID를 다시 읽을 수 있습니다.
당신이 (나중에 추가 처리를 위해, 예를 들어) T-SQL 내에서 새로 삽입 된 ID를 캡처해야하는 경우 또는, 당신은 테이블 변수를 작성해야합니다 :
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) 또는 "진짜"영구 테이블을 사용할 수 있습니다.
from https://stackoverflow.com/questions/10999396/how-do-i-use-an-insert-statements-output-clause-to-get-the-identity-value by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 java.sql.ResultSet의 크기를받을 수 있나요? (0) | 2020.03.16 |
---|---|
[SQL] T-SQL과 함께 일 월 및 연도에서 날짜를 만들기 (0) | 2020.03.16 |
[SQL] 오라클에서 대소 문자를 구분 검색 (0) | 2020.03.16 |
[SQL] C # .NET을 사용하여 .SQL 스크립트 파일을 실행하는 방법 (0) | 2020.03.16 |
[SQL] MySQL의 테이블 열 이름을 얻기? (0) | 2020.03.16 |