Programing

SQL Server 2008에서 테이블 별칭으로 UPDATE SQL을 작성하는 방법은 무엇입니까?

lottogame 2020. 5. 15. 08:00
반응형

SQL Server 2008에서 테이블 별칭으로 UPDATE SQL을 작성하는 방법은 무엇입니까?


나는 매우 기본이 있습니다 UPDATE SQL-

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

이 쿼리는 Oracle, Derby에서 잘 실행 MySQL되지만 SQL Server 2008 에서는 다음 오류와 함께 실패합니다 .

"메시지 102, 수준 15, 상태 1, 줄 1 'Q'근처에 잘못된 구문입니다."

SQL에서 별명 "Q"를 모두 제거하면 작동합니다.

그러나 별칭을 사용해야합니다.


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

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

여기서 별명은 필요하지 않습니다.


항상 CTE (공통 테이블 형식) 접근 방식을 사용할 수 있습니다.

;WITH updateCTE AS
(
    SELECT ID, TITLE 
    FROM HOLD_TABLE
    WHERE ID = 101
)

UPDATE updateCTE
SET TITLE = 'TEST';

참고 URL : https://stackoverflow.com/questions/4981481/how-to-write-update-sql-with-table-alias-in-sql-server-2008

반응형