복붙노트

[SQL] 는 SQL 서버에 업데이트 된 행 I의 ID를 얻기

SQL

는 SQL 서버에 업데이트 된 행 I의 ID를 얻기

나는 SQL에서 행 I 업데이트의 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가 계속, 나는이 어떻게받을 수 있나요?

해결법

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

    1.@@ IDENTITY 및 SCOPE_IDENTITY ()는 당신에게, 즉 새로운 행의 신원을 손 것입니다. 삽입 후. 당신의 업데이트 이후 행의 정체는 ... @Customer_ID 또는 @Handle_Id? 그것은 다른 필드 인 경우에는 업데이트 된 행의 ID를 반환 OUTPUT 절을 사용한다 :

    @@ IDENTITY 및 SCOPE_IDENTITY ()는 당신에게, 즉 새로운 행의 신원을 손 것입니다. 삽입 후. 당신의 업데이트 이후 행의 정체는 ... @Customer_ID 또는 @Handle_Id? 그것은 다른 필드 인 경우에는 업데이트 된 행의 ID를 반환 OUTPUT 절을 사용한다 :

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

    2.나는 @pauloya는 말을하려고 어떻게 생각 :

    나는 @pauloya는 말을하려고 어떻게 생각 :

    당신이 다음 테이블을 업데이트 할 경우 당신은 당신이 당신의 UPDATE에 의해 영향을받는 모든 행이 당신이 INTO #tempTable와에 절은 선택 어디에 같은를 사용 그렇다면, WHERE 절 있습니다.

    당신이 갈 수 있습니다 :

    SELECT
        userName.ID
    INTO #temp
    FROM ITS2_UserNames AS userNames
    WHERE @Customer_ID = TCID AND @Handle_ID = ID
    

    당신은 업데이트

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

    마지막으로 당신은 당신의 업데이트에 의해 영향을받는 모든 ID를 반환 할 수 있습니다

    SELECT * FROM #temp
    

    당신은 출력이 할 수 있지만 같은 변수 테이블을 선언해야합니다

    DECLARE @tempTable TABLE ( ID INT );
    

    다음은 출력을 사용하여

    UPDATE ITS2_UserNames  
    SET AupIp = @AupIp  
    OUTPUT INSERTED.ID
    INTO @tempTable
    WHERE @Customer_ID = TCID AND @Handle_ID = ID
    
  3. ==============================

    3.당신이 변수에 영향을받는 행의 기본 키를 가지고 싶다면 다음 테이블 변수에 넣고 수 OUTPUT 절을 사용할 수 있습니다 여기에 언급하고 싶었다. 예를 들어 문 아래 실행 ...

    당신이 변수에 영향을받는 행의 기본 키를 가지고 싶다면 다음 테이블 변수에 넣고 수 OUTPUT 절을 사용할 수 있습니다 여기에 언급하고 싶었다. 예를 들어 문 아래 실행 ...

    CREATE TABLE ItemTable (ID INT IDENTITY (1,1), 모델 VARCHAR (500) NULL, 컬러 VARCHAR (50) NULL)

    INSERT INTO ItemTable (모델, 컬러) VALUES ( 'SomeModel', '노란색')

    INSERT INTO ItemTable (모델, 컬러) VALUES ( 'SomeModel', '레드')

    INSERT INTO ItemTable (모델, 컬러) VALUES ( 'SomeModel', '핑크')

    DECLARE의 @LastUpdateID 표 (항목 ID INT NULL)

    UPDATE ItemTable SET 모델 = 'ABC' 출력 INSERTED.ID INTO @LastUpdateID WHERE 색 = '레드'

    @LastUpdateID FROM SELECT 항목 ID

  4. ==============================

    4.당신이 해당 업데이트를 일치하는 기록을 찾으려면 당신은 그것으로 선택을해야

    당신이 해당 업데이트를 일치하는 기록을 찾으려면 당신은 그것으로 선택을해야

    Select IdColumn
    From ITS2_UserNames
    WHERE @Customer_ID = TCID AND @Handle_ID = ID  
    
  5. from https://stackoverflow.com/questions/1610509/getting-the-id-of-a-row-i-updated-in-sql-server by cc-by-sa and MIT license