如何在 SQL Server 2008 中使用表别名编写 UPDATE SQL?
我有一个非常基本的 UPDATE SQL -
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
该查询在 Oracle、Derby、MySQL 中运行良好 - 但它 < i>在 SQL Server 2008 中失败 出现以下错误:
“消息 102,级别 15,状态 1,第 1 行‘Q’附近的语法不正确。”
如果我从 SQL 中删除所有出现的别名“Q”,那么它就可以工作。
但我需要使用别名。
I have a very basic UPDATE SQL
-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
This query runs fine in Oracle
, Derby
, MySQL
- but it fails in SQL server 2008
with following error:
"Msg 102, Level 15, State 1, Line 1 Incorrect syntax near 'Q'."
If I remove all occurrences of the alias, "Q" from SQL then it works.
But I need to use the alias.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 SQL Server 上的更新语句中使用别名的语法如下:
不过,此处不需要别名。
The syntax for using an alias in an update statement on SQL Server is as follows:
The alias should not be necessary here though.
您始终可以采用CTE(通用表格表达式)方法。
You can always take the CTE, (Common Tabular Expression), approach.
您编写的查询需要修改。我觉得您的查询中不需要使用 alias 关键字。
不使用 Alias 关键字:
使用 Alias 关键字: (CTE 方法)
The query that you have written needs to be modified. I feel that there is no need of using alias keyword in your query.
Without Alias keyword:
With Alias keyword: (CTE approach)