带空格的 SQL 表名

问题描述

我有一个表名,中间有空格,比如“订单详细信息”。

我想在带有连接的存储过程中使用该表。我尝试在查询中使用别名,[],`` 但似乎没有任何效果。有人能帮我解决这个错误吗!

enter image description here

解决方法

不要使用 order 作为列别名。它是一个 SQL 关键字。我只会使用o

select o.*,od.*
from orders o join
     order_details od
     on o.orderid = od.orderid
where year(o.orderdate) = @orderyear;

注意事项:

  • 您的 JOIN 条件为 ProductId。然而,这是非常可疑的。通常这样的连接在订单 id 上。事实上,如果有明细表,ProductId 不属于 Orders(通常)。
  • 不要在名称中使用空格来定义表。这只会使引用名称变得困难。
  • orderdate 似乎没有定义,因为它有一个红色下划线。
  • 我不推荐select *。一方面,您将拥有重复的列名。更重要的是,您希望明确说明此代码返回的内容,尤其是在存储函数或过程中。