2009-05-28 4 views
0

에 삽입하기 전에 제출 자동 증가를 읽을 I가 [UnicLine INT 정체성 (1,1) 즉 자신의 가치 나 데이터베이스에 새 레코드를 삽입 befor을 그 값을 읽을 수있는 방법방법 데이터베이스

증가 출원 된?

INSERT INTO [table] 
SELECT field1, field2; 
SELECT SCOPE_IDENTITY(); 

하고 ADO/ORM에서 해당 ID를 얻을 :

답변

4

당신이 필요하지 안, 당신이 할 수있는 무엇을하는 것은 출력과 같은 예를 들어 새로 만든 ID입니다.

그러나 귀하의 질문에 대답하기 위해이 작업을 수행 할 수 있습니다

SELECT top 1 [UnicLine] + 1 as newIDValue FROM [table] ORDER BY [UnicLine] DESC; 

또는

SELECT MAX([UnicLine]) + 1 as newIDValue FROM [table] 

간단한

을하지 질문의 일부하지만 read about

SCOPE_IDENTITY() vs @@IDENTITY vs IDENT_CURRENT('tablename') 

로 알 차이점과 채널 그냥 테이블에 현재 최대 값을보고 싶다면

+0

은 @SCOPE_IDENTITY 또는 SCOPE_IDENTITY()입니까? –

+0

@@ IDENTITY 또는 scope_identity() 중 하나라고 생각합니다. –

1

을 어디에서 웹 사이트 최적화 도구를 할 수있는 권리 하나 OOSE, 당신은이 작업을 수행 할 수 있습니다 그러나

select max(UnicLine) from mytable 

이 반드시 무엇을 다음 값을 말하지 않을 것이다 정체성 분야에있을 것입니다. 롤백 된 인서트가있는 경우 ID는 각각 증가하므로 다음 번 인서트는 현재 최대 값 + 1보다 큰 값을 얻을 수 있습니다. 저는 balexandre에 동의합니다. 일반적으로 이유는 없습니다 니가 필요해.

관련 문제