SQL插入语法错误。以价值为领域

时间:2014-03-13 06:27:20

标签: sql sql-server

我编写了以下SQL命令来创建数据库,然后创建一个表,然后将数据添加到created_db.created_table。

然而,这似乎是错误的。由于SQL将值作为字段名称。有什么问题?

我还使用Microsoft SQL Server 2012 Enterprise Edition。

CREATE DATABASE dbsample;
CREATE TABLE passwording (
     passwording_id INT
     ,passwording_username VARCHAR(256)
     ,passwording_date INT
);

INSERT INTO passwording (passwording_username, passwording_date) VALUES("myUserName", 754254354);

我得到的错误:

Msg 207, Level 16, State 1, Line 11
Invalid column name 'myUserName'.

5 个答案:

答案 0 :(得分:2)

删除"在"myUserName"中使用'myUserName'

INSERT INTO passwording 
        (passwording_username,passwording_date) 
VALUES ('myUserName',754254354); 

Working Fiddle

答案 1 :(得分:1)

在您的表中,您已为列INT指定了数据类型passwording_date。但是您输入的值为25/12/2011,这是一个字符串。那会有用吗?您应该使用Date数据类型吗?

编辑:参考您更新的问题,为什么要使用""在表格中插入字符串值。您的查询应该是

INSERT INTO passwording (passwording_username, passwording_date) VALUES('myUserName', 754254354);

答案 2 :(得分:1)

passwording_date被定义为INT而不是DATE数据类型。这将导致转换失败消息。此外,您的代码中未设置passwording_id。您可能想要指定身份。最后,日期格式采用英式风格,因此您可能希望将其明确地转换为具有相应样式的日期时间数据类型。

以下是代码的修订版:

CREATE TABLE passwording (
     passwording_id INT IDENTITY(1, 1) NOT NULL
     ,passwording_username VARCHAR(256) NOT NULL
     ,passwording_date DATE NOT NULL
);

INSERT INTO passwording (passwording_username, passwording_date) VALUES('myUserName', CONVERT(DATETIME, '25/12/2011', 103));

答案 3 :(得分:1)

single quote

使用double quotes代替myUserName

现在你可以在查询

之下运行
CREATE DATABASE dbsample;
CREATE TABLE passwording (
     passwording_id INT
     ,passwording_username VARCHAR(256)
     ,passwording_date INT
);

INSERT INTO passwording (passwording_username, passwording_date) VALUES('myUserName', 754254354);

答案 4 :(得分:0)

INSERT INTO passwording
VALUES(' myUserName',754254354);