2012-02-09 3 views
0

tbl_faults이라는 SQL Server 데이터베이스 테이블이 있습니다. 이 테이블에서 fault_id은 기본 (int)이며 자동 증가합니다. 동일한 테이블에서 나는 fault_reference (int)이라는 또 다른 필드를 가지며 자동 증가하지 않습니다.SQL 테이블의 마지막 업데이트 행 얻기

테이블에 데이터를 입력 할 때 fault_reference 값은 fault_id과 같은 값이어야합니다.

누구든지 내게이 방법을 제안 할 수 있습니까?

$sql='SELECT Top 1 FROM "tbl_faults" ORDER BY "fault_id"'; 

나는 fault_id의 마지막 업데이트 값을 얻고 새 행을 삽입 할 때 사용하려면이 옵션을 사용하려고했지만이 작동하지 않습니다.

답변

0

나는 당신이 두 가지 방법을 사용할 수 있다고 생각 당신이 당신의 기록을 업데이트하려면

$sql='SELECT Top 1 FROM "tbl_faults" ORDER BY "fault_id" DESC '; 

하여이 작업을 얻을 수 있다고 생각합니다. 삽입이

  • 설정 fault_reference의 INT의 NULL 허용 완료되면 행을 갱신 트리거를 작성

    1. . 그런 다음 update_query 값을 fault_reference가 NULL 인 fault_id로 갱신하기위한 갱신 조회를 작성하십시오.

    이것은 하나의 아이디어 일뿐입니다. 확인해주십시오.

  • 2
    SELECT fault_id FROM tbl_faults ORDER BY fault_id DESC LIMIT 1 
    

    삽입 된 마지막 ID를 제공해야합니다.

    +1

    SQL Server에 'LIMIT' 절이 없습니다. –

    0

    같은 범위의 ID 열에 삽입 된 마지막 신원 값을 반환하는 SCOPE_IDENTITY 함수를 사용하여 단일 저장 프로 시저에서 수행하는 것이 더 좋습니다. 범위는 모듈, 즉 저장 프로 시저, 트리거, 함수 또는 일괄 처리입니다. 따라서 동일한 저장 프로 시저, 함수 또는 일괄 처리에있는 두 문은 동일한 범위에 있습니다.
    두 개의 배치에서 수행 할 때 fault_id이 다른 배치에서 증가 할 가능성이 있기 때문입니다.

    관련 문제