【问题标题】:Incorrect syntax near 'Case'. Expecting ID, QUOTED_ID, or '.' Error in SQL Server'Case' 附近的语法不正确。需要 ID、QUOTED_ID 或“。” SQL Server 中的错误
【发布时间】:2021-12-10 04:12:05
【问题描述】:

我的数据库中有多个表。我的所有表都使用选择查询显示输出,而不仅仅是 1 个表“案例”。它也有数据和列,但是当我在查询中使用它时,它会显示语法错误。我还附上了包含表格列表和简单查询的图片。这段代码不是我开发的,所以我不确定它为什么会显示错误。我们可以设置什么限制使其不能在查询中使用?

【问题讨论】:

  • 请注意,SSMS 正在为您的声明进行颜色编码 - 这是一个非常重要的线索。

标签: sql-server database backend


【解决方案1】:

CASE 是 SQL Server 中的保留关键字。因此,您必须在双括号中对其进行转义:

SELECT * FROM dbo.[Case];

但最佳命名实践要求我们应避免使用保留关键字命名数据库对象。所以,不要将你的表命名为CASE

【讨论】:

  • 完全完美的答案。解决了我的问题。谢谢队友!
【解决方案2】:

不建议将保留字用作数据库、表、列、变量或其他对象名称。如果您希望使用保留字作为 ANSI 标准语法中的对象名称,则必须将其括在双引号或“[]”中,以允许关系引擎(无论是哪个)将该字用作一个对象,而不是给定上下文中的关键字。这是示例代码。

SELECT * FROM dbo."Case"

或者

SELECT * FROM dbo.[Case]

【讨论】:

  • 完全完美的答案。解决了我的问题。谢谢队友!
猜你喜欢
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多