programing

SQL Server 2008에서 테이블 에일리어스를 사용하여 UPDATE SQL을 작성하는 방법

bestprogram 2023. 4. 7. 22:01

SQL Server 2008에서 테이블 에일리어스를 사용하여 UPDATE SQL을 작성하는 방법

나는 아주 기본적인 것을 가지고 있다.UPDATE SQL-

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

이 쿼리는 에서 정상적으로 실행됩니다.Oracle,Derby,MySQLSQL Server 2008에서는 다음 오류로 인해 실패합니다.

"Msg 102, 레벨 15, 상태 1, 라인 1 'Q' 근처 구문 잘못됨"

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

하지만 가명을 써야겠어요

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

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

다만, 여기서 에일리어스는 필요 없습니다.

언제든지 CTE(Common Tableular Expression) 방식을 사용할 수 있습니다.

;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