为什么SQL Server说这是错的?

时间:2017-11-15 12:03:10

标签: sql sql-server

我有“用户”表

id         int
username   varchar(40)
joindate   date
email      varchar(60)
password   nvarchar(100)

我想执行以下查询

INSERT INTO User (username, joinDate, email, password) 
VALUES ('Kristian', '15/11/2017', 'foo@outlook.com', 'password')

SQL Server 2014引发错误

  

关键字“用户”

附近的语法不正确

我做错了什么?

2 个答案:

答案 0 :(得分:5)

"用户"是一个保留字,因此需要用方括号括起来。

INSERT INTO [User] (username, joinDate, email, password) 
VALUES ('Kristian', '15/11/2017', 'foo@outlook.com', 'password')

正如在评论中强烈指出的那样,更改表名将是更好的行动方案,如果你能够这样做

答案 1 :(得分:1)

由于以下原因,您收到错误

  1. User(以及Password)是系统定义的关键字。因此,在将其用于任何表名称或列名称时(不建议使用它),您应该在方括号内指定它们

  2. 您将日期时间设为DD / MM / YYYY格式。将其更改为MM / DD / YYYY。

  3. 我更改了下面的查询,它适用于我

    INSERT INTO [User] (username, joinDate, email, [password]) 
    VALUES ('Kristian', '11/15/2017', 'foo@outlook.com', 'password')