2009-10-22 4 views
17

SQL에서 업데이트하는 행의 ID를 반환하는 중입니다.SQL Server에서 업데이트 된 행의 ID 얻기

UPDATE ITS2_UserNames 
    SET AupIp = @AupIp 
    WHERE @Customer_ID = TCID AND @Handle_ID = ID 

    SELECT @@ERROR AS Error, @@ROWCOUNT AS RowsAffected, SCOPE_IDENTITY() AS ID 

그리고 ID가 null 인 경우 계속 가져올 수 있습니까?

답변

40
@@identity

scope_identy() 당신에게 즉 새로운 행의 신원을 손 것입니다. 삽입 후. 업데이트가 완료되면 행 ID는 ... @Customer_ID 또는 @Handle_Id입니까? 당신이 해당 업데이트를 일치하는 기록을 찾으려면

UPDATE ITS2_UserNames 
SET AupIp = @AupIp 
OUTPUT INSERTED.PrimaryKeyID 
WHERE @Customer_ID = TCID AND @Handle_ID = ID 
+2

물론 그는 그가 SQL2005/2008에 있다고 가정합니다. 물론 – MartW

+0

아니요, SQL 2000에도 있습니다. – MartW

+0

@CodeByMoonlight : 당신 말이 맞습니다. –

0

당신이 그것을

으로 선택을해야한다 : 다른 필드 인 경우에는 업데이트 된 행의 ID를 반환 OUTPUT 절을 사용 shoudl
Select IdColumn 
From ITS2_UserNames 
WHERE @Customer_ID = TCID AND @Handle_ID = ID 
+0

열을 업데이트하고있는 경우에는 작동하지 않습니다. – Talon

1

@Handle_ID가있는 행의 IDENTITY 값을 확인하지 않습니까? 그렇다면 다음을 사용하십시오.

그렇다면 IDENTITY 열은 어떤 열인지 설명 할 수 있습니까?

관련 문제