如何处理SQL Server中列名中的空格?

Cof*_*fee 16 database sql-server

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

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
Run Code Online (Sandbox Code Playgroud)

你如何在SQL Server中这样做?

谢谢!

Jim*_*mbo 35

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 
Run Code Online (Sandbox Code Playgroud)

将名称包裹在方括号中.

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


Jam*_*e F 5

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
Run Code Online (Sandbox Code Playgroud)

这将为表名以及工作,也是一个很好的做法,如果你的字段名称是一个保留字或相似,如[Order][Month]

更好的做法是完全避免那些......


小智 5

我理解创建带有空格的列的必要性,特别是对于用户将与之交互的报告,将列标题标记为“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]
Run Code Online (Sandbox Code Playgroud)

...

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