[SQL] 가장 안전한 방법은 테이블에서 마지막 레코드 ID를 얻으려면
SQL가장 안전한 방법은 테이블에서 마지막 레코드 ID를 얻으려면
SQL Server 2008 및 최고 / 안전 / 가장 올바른 방법이 무엇인지 더 높은
해결법
-
==============================
1.안전한 방법은 출력 될 또는 행을 삽입 과정에서 ()를 SCOPE_IDENTITY를 반환하고, 그 ID에 기초하여 행을 검색한다. 트리거 플레이에있을 때 당신이 잘못된 ID를 얻을 수 있기 때문에 @@ IDENTITY의 사용은 피해야한다.
안전한 방법은 출력 될 또는 행을 삽입 과정에서 ()를 SCOPE_IDENTITY를 반환하고, 그 ID에 기초하여 행을 검색한다. 트리거 플레이에있을 때 당신이 잘못된 ID를 얻을 수 있기 때문에 @@ IDENTITY의 사용은 피해야한다.
최대 값 / 상위 1 겪고있다가 가장 높은 ID를 보았을 때 같은 시간에 추가 2 명, 다음 동일한 ID를 다시 얻을 것이다 경쟁 조건을 묻는 모든 기술.
-
==============================
2.
SELECT IDENT_CURRENT('Table')
이러한 예 중 하나를 사용할 수 있습니다 :
SELECT * FROM Table WHERE ID = ( SELECT IDENT_CURRENT('Table')) SELECT * FROM Table WHERE ID = ( SELECT MAX(ID) FROM Table) SELECT TOP 1 * FROM Table ORDER BY ID DESC
인덱스 스캔이 필요하지 않기 때문에 (당신이 id 컬럼에 인덱스가있는 경우)하지만 첫 번째는 더 효율적입니다.
두 번째 용액 제 (이들 모두는 최대 ID를 얻는 스캔 테이블에 필요)에 상당한다.
-
==============================
3.
1. SELECT MAX(Id) FROM Table
-
==============================
4.당신은 시도 할 수 있습니다:
당신은 시도 할 수 있습니다:
SELECT id FROM your_table WHERE id = (SELECT MAX(id) FROM your_table)
id는 your_table의 기본 키 인 경우
-
==============================
5.나는이 하나의 작업도 생각 :
나는이 하나의 작업도 생각 :
-
==============================
6.또 하나의 방법 -
또 하나의 방법 -
select * from <table> where id=(select max(id) from <table>)
또한 당신은이 링크를 확인하실 수 있습니다 -
http://msdn.microsoft.com/en-us/library/ms175098.aspx
-
==============================
7.그리고 당신이 의미하는 경우 것은 삽입 된 마지막 레코드의 ID를 선택, 그
그리고 당신이 의미하는 경우 것은 삽입 된 마지막 레코드의 ID를 선택, 그
SELECT @@IDENTITY FROM table
from https://stackoverflow.com/questions/3422168/safest-way-to-get-last-record-id-from-a-table by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 수있는 "IN"연산자를 사용 오라클에서 LIKE-와일드 카드 (%)? (0) | 2020.07.05 |
---|---|
[SQL] 어떻게 SQL을 사용하여 문자열에서 특정 문자의 발생 횟수를 찾을 수 있습니까? (0) | 2020.07.05 |
[SQL] 어떻게 DATETIME 컬럼에 1 년 추가하는 SQL UPDATE 문을 사용할 수 있습니까? (0) | 2020.07.05 |
[SQL] SQL에서 전화 번호와 같은 숫자 열을 포맷하는 방법 (0) | 2020.07.04 |
[SQL] 연산자와 같은 SQL 숫자 만 얻을 수 (0) | 2020.07.04 |