database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 1809 게시물 읽기
No. 1809
identity 가 포함된 테이블에 데이타 인서트 후 바로 Max identity 값을 가져오려 합니다.그런데...
작성자
정원식(daehyub)
작성일
2005-03-08 19:16
조회수
3,749

 

identity 가 포함된 테이블에 데이타 인서트 후 바로 Max identity 값을 가져오려 합니다.그런데...

 

공통의 테이블이라

트랜잭션으로 묶어놓고 (1)데이타 insert (2) 인서트한 레코드의 max index 값을 리턴하려합니다.

소스는 대략 아래와 같이 (

 

Sql = " insert into Test ( No, Name ) values ('0001','홍길동'); "

Sql = Sql & "select ident_current('Test') MaxIndex"

Set Rs = DBCon.Execute(Sql)

maxValue = Rs(0)

 

 

그런데 막상 실행시켜보면 데이타는 인서트 되는데

"요청한 컬랙션의 서수나 값을 찾을수 없다"고 메세지가 나옵니다.

 

제가 도움 청하는 것은

위에서 혹시 제가 잘못한 것이 있는지... 아니라면

위와 같이 자기가 인서트 한 레코드의 인덱스값을 받아야 하는 경우

추천할 만한 방법론을 부탁합니다.

 

 

 

 

 

 

이 글에 대한 댓글이 총 3건 있습니다.

위의 상황은 트랜잭션이라기 보다는 그냥 배치처리라고 하는게 

맞는 상황이라 여기지는데요.

배치는 한꺼번에 처리하는 것이지만 이는 에러나 취소(Rollback)가 되지 않는데

반해 트랜잭션은 에러나 취소가 가능하기 때문입니다.

그 두문장을 따로 실행하면 가능하지 않을까 싶습니다.

여리님이 2005-03-09 01:03에 작성한 댓글입니다. Edit

답변 감사합니다. ^^

그런데, 제가 트랜잭션이라고 표현한 이유는

제가 생성한 레코드의 id 값을 가져오게 하기 위함입니다.

만약 그 짧은시간에 ( 확률이 무지 낮지만 .. ) 다른 유저가

같은 작업을 실행했을 경우 (참고로 지금현재 여리님이 말씀하신

방법대로 두개의 Sql을 따로 실행시키고 있습니다.) 발생할 수

있는 문제때문에 고민했던 것입니다.

만약, 위와 같은 방법이 가능하지 않다면 SP를 사용해서 처리하는

것도 생각해볼까 하는 중 입니다. ^^;

 

정원식(daehyub)님이 2005-03-09 09:11에 작성한 댓글입니다.

이까이꺼 머....

 

output 변수 사용해서

@@identity 를 설렉트 해오면 되죠

 

석이님이 2005-06-16 15:54에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1812고수님 이거좀 봐주세요..ㅠㅠ [1]
오신일
2005-03-09
3045
1811INNER JOIN 과 OUTER JOIN 간의 차이...? [4]
정원식
2005-03-09
7478
1810TM REQUEST 가 무엇인가여?
송승현
2005-03-09
3025
1809identity 가 포함된 테이블에 데이타 인서트 후 바로 Max identity 값을 가져오려 합니다.그런데... [3]
정원식
2005-03-08
3749
1808기본 키에 대한 개념 질문입니다. [10]
이상도
2005-03-07
6290
1807MS-SQL 서버간 LINK를 하면 사용자 LICENSE는 어떻게 되나요? [1]
전숙
2005-03-07
3038
1806ORACLE 테이블과 MS-SQL 테이블 조인하는 방법좀 가르쳐 주세요 [3]
TOM
2005-03-07
3237
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다