【问题标题】:Is there a way to not use square brackets in SQL Server?有没有办法在 SQL Server 中不使用方括号?
【发布时间】:2015-05-08 19:24:36
【问题描述】:

在 Microsoft SQL Server 中,我有一个名为 [Key] 的表,但我讨厌每次都必须将其寻址为 [Key]

所以我将其重命名为 ki。好吧,至少方括号不见了。

现在我想做的是:

CREATE SYNONYM Key FOR ki

但这没有用。我想我运气不好。还有其他好主意吗?

我从来没有使用过复数名称的表格,例如人或地址或任何东西。一直是 person 表或 address 表。

【问题讨论】:

  • 您必须使用方括号的原因是因为您试图将对象命名为与保留字相同的名称。为什么不给它命名一个有意义的东西而不是超级模棱两可的钥匙?
  • 如果您坚持使用reserved T-SQL keywords 之一然后,则不能跳过方括号
  • SQL Server 可以配置为符合关于引用标识符的 SQL 标准。在这种情况下,您可以使用双引号代替那些可怕的括号:"key"
  • 您也可以在名称中使用单引号。在选择查询和创建计算列时,我通常使用单引号。
  • 有趣的是,在我的商店中,我们只是在所有内容上都使用方括号......无论是否需要。所有模式名、表名和列名总是完全括起来,表名总是完全限定的(如“[dbo].[MyTable]”)。它消除了很多歧义,这是一个巨大的困难,因为那里有一些 SQL 格式化程序会自动为您添加括号。所以只要把它吸起来,然后输入 [Key] 并克服它:-)

标签: sql-server


【解决方案1】:

我知道很多人不喜欢这样,但我总是为 sql 中的所有内容使用前缀或后缀。
tbl 用于表,stp 用于过程,v 用于视图等。
在列名中,表名本身就是前缀:person_id、person_fkvalue 等。

这样我就不用处理保留字了,并且可以立即知道该列属于哪个表。
这也消除了在连接中为表名使用别名的需要。
我非常喜欢使用有意义的名称,所以即使是派生表通常也会得到名称而不是字母。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-11
    • 2020-07-29
    • 2011-09-09
    • 2022-10-13
    • 1970-01-01
    • 2023-03-18
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多