jav*_*r71 191 sql sql-server alias sql-server-2008 sql-update
我有一个非常基本的UPDATE SQL-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
Run Code Online (Sandbox Code Playgroud)
该查询中运行良好Oracle,Derby,MySQL-但它在SQL Server 2008中失败
与以下错误:
"Msg 102,Level 15,State 1,Line 1'Q'附近的语法不正确."
如果我从SQL中删除所有出现的别名"Q",那么它可以正常工作.
但我需要使用别名.
Mar*_*ers 377
在SQL Server上的update语句中使用别名的语法如下:
UPDATE Q
SET Q.TITLE = 'TEST'
FROM HOLD_TABLE Q
WHERE Q.ID = 101;
Run Code Online (Sandbox Code Playgroud)
但是这里不需要别名.
Ryk*_*Ryk 17
你总是可以采用CTE(Common Tabular Expression)方法.
;WITH updateCTE AS
(
SELECT ID, TITLE
FROM HOLD_TABLE
WHERE ID = 101
)
UPDATE updateCTE
SET TITLE = 'TEST';
Run Code Online (Sandbox Code Playgroud)