복붙노트

[SQL] 어떻게 2008 SQL 서버의 테이블 별명 UPDATE SQL을 작성하는?

SQL

어떻게 2008 SQL 서버의 테이블 별명 UPDATE SQL을 작성하는?

나는 아주 기본적인 UPDATE의 SQL을 -

UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;

이 쿼리는 오라클, 더비, MySQL의에 벌금을 실행 -하지만 SQL Server 2008의 실패 다음과 같은 오류와 함께 :

내가 별칭의 모든 항목을 제거하는 경우, SQL에서 "Q"는 다음 작동합니다.

하지만 별칭을 사용해야합니다.

해결법

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

    1.다음과 같이 SQL 서버에 업데이트 문에 별칭을 사용하는 구문은 다음과 같습니다

    다음과 같이 SQL 서버에 업데이트 문에 별칭을 사용하는 구문은 다음과 같습니다

    UPDATE Q
    SET Q.TITLE = 'TEST'
    FROM HOLD_TABLE Q
    WHERE Q.ID = 101;
    

    별명은 여기에 있지만 필요는 없습니다.

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

    2.당신은 항상 접근 방식을 CTE (공통 테이블 형식의 표현)를 취할 수 있습니다.

    당신은 항상 접근 방식을 CTE (공통 테이블 형식의 표현)를 취할 수 있습니다.

    ;WITH updateCTE AS
    (
        SELECT ID, TITLE 
        FROM HOLD_TABLE
        WHERE ID = 101
    )
    
    UPDATE updateCTE
    SET TITLE = 'TEST';
    
  3. from https://stackoverflow.com/questions/4981481/how-to-write-update-sql-with-table-alias-in-sql-server-2008 by cc-by-sa and MIT license