尝试将少量数据添加到表中时出现错误

时间:2018-09-25 15:56:07

标签: sql sql-server

我正在尝试使用此代码向表中添加几个数据

INSERT INTO MegaPlan(Plan_Name, Quota, Price)
VALUES ('Budget Plan', '2GB + 1GB', '$29.95'),
       ('Netlover Broadband', '15GB + 15GB', '$49.95'),
       ('ADSL2+ Basic','5GB + 2GB','$39.95'),
       ('Xtreme ADSL2+','30GB + 30GB','$69.95'),
       ('Freedom Light','3GB + 2GB','$39.95'),
       ('Freedom Heavy','20GB + 10GB','$79.95')

这是我要向其添加数据的表

CREATE TABLE MegaPlan 
(
    Plan_Name VARCHAR Primary Key,
    Quota VARCHAR(15),
    Price int,
    AccessID int,
    FOREIGN KEY (AccessID) REFERENCES Access(AccessID)
)

我遇到的错误是

  

8152消息,第16级,状态14,第1行
  字符串或二进制数据将被截断。

该语句已终止。

2 个答案:

答案 0 :(得分:0)

Price具有INT类型,因此您不能插入带有$前缀的价格,而另外一点是Plan_Name具有VARCHAR意味着长度只有1 char。您需要修改表以修改Plan_Name的长度:

alter table MegaPlan
     alter Plan_Name varchar(255) not null

然后,我尝试插入数据

INSERT INTO MegaPlan(Plan_Name, Quota, Price)
VALUES ('Budget Plan', '2GB + 1GB', 29.95),
       ('Netlover Broadband', '15GB + 15GB', 49.95),
       ('ADSL2+ Basic','5GB + 2GB', 39.95),
       ('Xtreme ADSL2+','30GB + 30GB', 69.95),
       ('Freedom Light','3GB + 2GB', 39.95),
       ('Freedom Heavy','20GB + 10GB', 79.95)

答案 1 :(得分:0)

价格为整数,您正在尝试为其分配字符串。 尝试使用Price VARCHAR而不是INT