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에서는 다음 오류로 인해 실패합니다.
"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
'programing' 카테고리의 다른 글
클래스의 모든 속성을 루프하려면 어떻게 해야 합니까? (0) | 2023.04.07 |
---|---|
SQL Server VARCHAR/NVARCHAR 문자열에 줄 바꿈을 삽입하는 방법 (0) | 2023.04.07 |
여러 열에 걸쳐 DISTINCT 카운트 (0) | 2023.04.07 |
표에서 특정 열의 첫 번째 문자를 삭제하려면 어떻게 해야 합니까? (0) | 2023.04.07 |
두 날짜 사이의 날짜를 선택하는 SQL 쿼리 (0) | 2023.04.07 |