我有一个非常基本的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”的所有出现,那么它就可以工作了。
但我需要用化名。
我有一个非常基本的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语句中使用别名的语法如下:
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';