【问题标题】:How do you deal with blank spaces in column names in SQL Server?如何处理 SQL Server 中列名中的空格?
【发布时间】:2012-06-10 20:23:50
【问题描述】:

假设我想使用这样的代码:

select 'Response Status Code', 'Client Response Status Code' 
from TC_Sessions (NOLOCK)
WHERE StartDate BETWEEN '05-15-2012' AND '06-01-2012'
AND SupplyID = 3367

如何在 SQL Server 中做到这一点?

谢谢!

【问题讨论】:

    标签: sql-server database


    【解决方案1】:
    select [Response Status Code], [Client Response Status Code]
    from TC_Sessions (NOLOCK) 
    WHERE StartDate BETWEEN '05-15-2012' AND '06-01-2012' 
    AND SupplyID = 3367 
    

    将名称括在方括号中。

    但是,如果可能,最好避免名称中的空格。它只会为你创造更多的工作......

    【讨论】:

    • 我确认,在您的姓名中避免使用空格或特殊字符。永远不要忘记,当您需要将这些名称翻译成一种语言(C#、Java、...)时,变量名称不接受空格,然后您可能会发生冲突。更多信息stackoverflow.com/q/55295594/196526
    【解决方案2】:

    我了解创建包含空格的列的必要性,尤其是对于用户将与之交互的报告,将列标题标记为“Client_Response_Status_Code”对用户不太友好。

    当然,之前的答案在技术上都是正确的,但是我建议不要创建名称中带有空格的列,而是创建视图并更改列名...

    例如:

    create view TC_Sessions_Report as
    select response_status_code AS [Response State Code], 
           client_response_status_code as [Client Response Status Code]
    

    ...

    这样你就不必在代码中到处处理那些“友好”的列名,但是在你确实需要使用友好的列名的地方你可以使用视图来代替......

    【讨论】:

    • 我确认这是一个好方法。表格用于 cade,视图用于报告。对我来说,这是一个很好的做法。我确认,在您的所有姓名中避免使用空格或特殊字符。永远不要忘记,当您需要将这些名称翻译成一种语言(C#、Java、...)时,变量名称不接受空格,然后您可能会发生冲突。有关此 stackoverflow.com/q/55295594/196526 的更多信息 – Bastien Vandamme 1 分钟前
    【解决方案3】:
    select
       [Response Status Code],
       [Client Response Status Code] 
    from TC_Sessions (NOLOCK)
    WHERE StartDate BETWEEN '05-15-2012' AND '06-01-2012'
    AND SupplyID = 3367
    

    这也适用于表名,如果您的字段名是保留字或类似名称,例如[Order][Month],这也是一个好习惯

    更好的做法是完全避免这些……

    【讨论】:

      【解决方案4】:

      一般在 sql 中你不这样做。你做 response_status_code ,如果你必须使用空格,我会尝试用 \ 或使用 [Response Status Code] 或其他东西来转义它们

      【讨论】:

        【解决方案5】:

        您可以使用带有空格的列,但通常会避免使用。您需要将列括在括号中以选择它:

        select [Response Status Code], [Client Response Status Code]  
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-05-29
          • 2021-06-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多