복붙노트

[SQL] 가장 안전한 방법은 테이블에서 마지막 레코드 ID를 얻으려면

SQL

가장 안전한 방법은 테이블에서 마지막 레코드 ID를 얻으려면

SQL Server 2008 및 최고 / 안전 / 가장 올바른 방법이 무엇인지 더 높은

해결법

  1. ==============================

    1.안전한 방법은 출력 될 또는 행을 삽입 과정에서 ()를 SCOPE_IDENTITY를 반환하고, 그 ID에 기초하여 행을 검색한다. 트리거 플레이에있을 때 당신이 잘못된 ID를 얻을 수 있기 때문에 @@ IDENTITY의 사용은 피해야한다.

    안전한 방법은 출력 될 또는 행을 삽입 과정에서 ()를 SCOPE_IDENTITY를 반환하고, 그 ID에 기초하여 행을 검색한다. 트리거 플레이에있을 때 당신이 잘못된 ID를 얻을 수 있기 때문에 @@ IDENTITY의 사용은 피해야한다.

    최대 값 / 상위 1 겪고있다가 가장 높은 ID를 보았을 때 같은 시간에 추가 2 명, 다음 동일한 ID를 다시 얻을 것이다 경쟁 조건을 묻는 모든 기술.

  2. ==============================

    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. ==============================

    3.

    1.  SELECT MAX(Id) FROM Table
    
  4. ==============================

    4.당신은 시도 할 수 있습니다:

    당신은 시도 할 수 있습니다:

    SELECT id FROM your_table WHERE id = (SELECT MAX(id) FROM your_table)
    

    id는 your_table의 기본 키 인 경우

  5. ==============================

    5.나는이 하나의 작업도 생각 :

    나는이 하나의 작업도 생각 :

  6. ==============================

    6.또 하나의 방법 -

    또 하나의 방법 -

    select * from <table> where  id=(select max(id) from <table>)
    

    또한 당신은이 링크를 확인하실 수 있습니다 -

    http://msdn.microsoft.com/en-us/library/ms175098.aspx

  7. ==============================

    7.그리고 당신이 의미하는 경우 것은 삽입 된 마지막 레코드의 ID를 선택, 그

    그리고 당신이 의미하는 경우 것은 삽입 된 마지막 레코드의 ID를 선택, 그

    SELECT @@IDENTITY FROM table
    
  8. from https://stackoverflow.com/questions/3422168/safest-way-to-get-last-record-id-from-a-table by cc-by-sa and MIT license