【问题标题】:Table name containing special characters '[' and ']'包含特殊字符“[”和“]”的表名
【发布时间】:2015-03-17 06:56:43
【问题描述】:

我想在名称中使用 [] 在 sql server 中创建表。这意味着 [] 符号是表名的一部分。我该怎么做?我使用 sql server 2008 r2

【问题讨论】:

  • 为什么在这个世界上你要名字包含这样的“符号”。

标签: sql-server create-table


【解决方案1】:

如果用双引号将表名括起来,则可以使用]:

create table "[Mu]Ha[Ha]" (id int);

请注意,使用irregular identifiers 会招来麻烦。并非所有客户端库都能正确处理它们,并且您的代码将变得更难被其他开发人员阅读。

【讨论】:

    【解决方案2】:

    您可以在其中使用[ ] 创建一个表(或列名),但这被认为是一种不好的做法。

    CREATE TABLE "tabl[eO]ne" (ID int NOT NULL)
    

    上述方法可行,但被认为是不好的做法,因为它使代码更难阅读和理解,不仅对您,而且对您之后从事数据库工作的其他开发人员也是如此。

    在 SQL 中,如果名称包含空格或某些特殊字符,人们会在表/列名称周围使用方括号,如下例所示:

    CREATE TABLE [Table One]
    CREATE TABLE [Table-One]
    CREATE TABLE [Table_One]
    CREATE TABLE [Table*One]
    ...
    

    这仍然不是一个好的做法,但它遵循“最佳做法”指南。

    最佳实践: 避免在表格/列名中使用特殊字符、数字或空格。

    【讨论】:

      【解决方案3】:

      用方括号括起来。 但这不是一个好习惯 [“名称[a]abc”]

      【讨论】:

        【解决方案4】:

        你可以通过使用双括号来克服这个问题。见下文:

        CREATE TABLE dbo.[[tbl]]](id INT)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-12-25
          • 2019-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-03
          • 1970-01-01
          相关资源
          最近更新 更多