【问题标题】:Incorrect syntax near 'NVARCHAR' [closed]'NVARCHAR' 附近的语法不正确 [关闭]
【发布时间】:2021-03-22 13:13:03
【问题描述】:
CREATE TABLE #temptable
(
    Assessment_Component_Identifier NVARCHAR(50),
    Predecessor_Assessment_Component_Identifier NVARCHAR(50),
    Assessment_Period_Identifier NVARCHAR(50),
    [Level] TINYINT,
    Assessment_Period_dataination_Identifier NVARCHAR(50)
);

INSERT INTO #temptable
(
    Assessment_Component_Identifier NVARCHAR(50),
    Predecessor_Assessment_Component_Identifier NVARCHAR(50),
    Assessment_Period_Identifier NVARCHAR(50),
    [Level] TINYINT,
    Assessment_Period_dataination_Identifier NVARCHAR(50)
);

我收到以下错误

消息 102,第 15 级,状态 1,第 11 行
'NVARCHAR' 附近的语法不正确

【问题讨论】:

标签: sql sql-server tsql


【解决方案1】:

如果你想插入#temp 表,那么你必须只使用列表中的列名,如下所示:

INSERT INTO #temptable
(
    Assessment_Component_Identifier,
    Predecessor_Assessment_Component_Identifier,
    Assessment_Period_Identifier,
    [Level],
    Assessment_Period_dataination_Identifier
) VALUES (.....);

【讨论】:

    【解决方案2】:
    CREATE TABLE #temptable
    (
        S_No INT Identity(1, 1),
        Assessment_Component_Identifier NVARCHAR(50),
        Predecessor_Assessment_Component_Identifier NVARCHAR(50),
        Assessment_Period_Identifier NVARCHAR(50),
        [Level] TINYINT,
        Assessment_Period_dataination_Identifier NVARCHAR(50)
    );
    
    --it's better to use primary key or indexing if you are working on bulk data 
    
    insert into #temptable  values('x','x','x',1,'x') 
    
    select * from #temptable
    
    IF OBJECT_ID(N'tempdb..#temptable') IS NOT NULL
    
    BEGIN
    
    DROP TABLE #temptable
    
    END
    

    【讨论】:

    • 列出要插入的列也是最佳实践。
    • 感谢@DaleK 的更正,我会尽量放松
    猜你喜欢
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 2018-10-25
    • 2013-06-26
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多