Sql server 为什么SQLServerManagementStudio使用方括号生成代码?

Sql server 为什么SQLServerManagementStudio使用方括号生成代码?,sql-server,ssms,Sql Server,Ssms,生成代码/脚本时 为什么SQLServerManagementStudio使用方括号而不是双引号生成代码 从[表]中选择[名称] 有没有办法(设置/注册表项)将其配置为使用双引号(标准) 从“表”中选择“名称” 这是一个非常简单的特性,因为他们的所有文档现在都显示了双引号(请参阅) 为什么SQLServer(ManagementStudio)使用方括号生成代码 从[表]中选择[名称] 处理保留字或包含空格的名称 方括号是将标识符包装到的本机方式。它们是不对称的,可以是不匹配的,而引号是对称的,应

生成代码/脚本时

  • 为什么SQLServerManagementStudio使用方括号而不是双引号生成代码

    从[表]中选择[名称]

  • 有没有办法(设置/注册表项)将其配置为使用双引号(标准)

    从“表”中选择“名称”

  • 这是一个非常简单的特性,因为他们的所有文档现在都显示了双引号(请参阅)

    为什么SQLServer(ManagementStudio)使用方括号生成代码

    从[表]中选择[名称]

    处理保留字或包含空格的名称

    方括号是将标识符包装到的本机方式。它们是不对称的,可以是不匹配的,而引号是对称的,应该匹配(或加倍以将它们包含在名称中):


    你的链接解释了原因,至少对我来说是这样。括号不依赖于设置,但“的有效性取决于引用的标识符设置。

    要回答您问题的另一半,SQL Server Management Studio中有一种变通方法,可以使用“全部替换”命令(Ctrl+H):

    • 查找内容:
      [\[\]
    • 替换为:
    • 选中“使用:”并选择“正则表达式”
    • 按“全部替换”

    请记住,这也将取代您评论中出现的括号。

    好的观点,我知道。我应该改变我问题的措辞:我的意思是为什么用方括号而不是双引号。虽然它只涵盖了我问题的一半,但我会接受答案,因为不对称确实是一个很好的论点。你说“双引号[是](标准)”。这是ANSI标准吗?是的,这是ANSI标准“使用括号,[和],来分隔标识符不受引用的标识符设置的影响。”我认为Sybase的传统和它的行为是这成为必要的原因。
    CREATE TABLE [[test] (id INT)
    CREATE TABLE ["test] (id INT)
    DROP TABLE "[test"
    DROP TABLE """test"