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

SRY*_*AVA 1 sql-server columnname parentheses

我想在SQL Server2012中创建一个表,其列名包括括号as

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

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

'('.'''''''或'''附近的语法不正确.**

怎么解决?

Aja*_*707 8

括号,单个逗号是sqlserver的保留字.一般避免这类事情.

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

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

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

SQL Server varchar字段中允许哪些"特殊"字符?

SQL Server数据库名称中有哪些字符有效?

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

必须在Tsql中转义的字符


Fel*_*tan 5

只要把它放进去[]

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

)
Run Code Online (Sandbox Code Playgroud)

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