如何在 create table Sql 查询中的列名中设置括号

How to set parenthesis in column name in create table Sql query

我想在 SQL Server2012 中创建一个 table,它的列名称包含括号

create table temp_sp 
( 
    logtime datetime,
    vcs_api varchar,
    L3(S1)Status varchar,
    L3(S2)Status varchar,
    beam_current real,
    beam_energy real,
    st1_vs1_bag1_rb real,
    ring_avg_pressure real
)

但是当我在 L3(S1)StatusL3(S2)Status 中使用括号时,我得到一个错误

Incorrect Syntax near '('.Expecting ')'or ','.**

如何解决?

放在里面就可以了[]

create table temp_sp (

    logtime datetime,

    vcs_api varchar,

    [L3(S1)Status] varchar,

    [L3(S2)Status] varchar,

    beam_current real,

    beam_energy real,

    st1_vs1_bag1_rb real,

    ring_avg_pressure real

)

编辑: 正如下面的评论所述:您不应留下未指定长度的可变长度字段。 VARCHAR 和 NVARCHAR 有两个默认值,1 或 30,具体取决于使用的 how/where。

使用方括号

[Like (this)]

但是不要这样做。这让你所有的 SQL 都写起来很尴尬,也可能使 SP 和代码调用更加困难。

括号,单逗号是sqlserver的保留字。一般避免这种事情。

你仍然想要,你需要使用括号 [] 来告诉 sqlserver 它是字符串,而不是保留字。

所以 [L3(S1)] Status varchar 这对你有用。

好文章:- http://technet.microsoft.com/en-us/library/aa224033%28v=sql.80%29.aspx

Which "special" characters are allowed in SQL Server varchar fields?

What characters are valid in an SQL Server database name?

http://msdn.microsoft.com/en-us/library/ms175874.aspx

Characters that must be escaped in Tsql