【问题标题】:Error, Msg 109, Level 15, State 1, Line 1 There are more columns in the INSERT statement than values specified in the VALUES clause错误,消息 109,级别 15,状态 1,第 1 行 INSERT 语句中的列多于 VALUES 子句中指定的值
【发布时间】:2017-02-17 17:46:52
【问题描述】:

我想在表格中插入以下信息,但它给我以下代码中的以下错误:

消息 109,级别 15,状态 1,行 1 INSERT 语句中的列多于 VALUES 子句中指定的值。 VALUES 子句中的值数必须与 INSERT 语句中指定的列数匹配。

create table registration
(
id  int identity primary key,
first_name varchar(100),
last_name varchar(100),
username varchar(100),
[password] varchar(100),
email varchar(100),
[address] varchar(100),
gender varchar(10),
dob date,
reg_date date,
country varchar(50),
city varchar(50),
[status] bit
)
select * from registration

insert into registration (first_name,last_name,username,password,email,[address],gender,dob,reg_date,country,city,status) 
values ('Ali','Khan','alik','123','alikhan@gmail.com','Male','19930318','20170318','Pakistan','Karachi')

【问题讨论】:

  • 错误信息准确地告诉你你需要知道什么。您的插入语句包含 12 列,您的 VALUES 子句包含 10 个值。

标签: sql sql-server database data-entry


【解决方案1】:

错误很明显,您缺少值中的某些列。试试这个:

insert into registration (first_name,last_name,username,password,email,[address],gender,dob,reg_date,country,city,status) 
values ('Ali','Khan','alik','123','alikhan@gmail.com','100 Sample Street Address', 'Male','19930318','20170318','Pakistan','Karachi', cast(1 as bit))

【讨论】:

    【解决方案2】:

    像这样查看您的查询:

    Column        Value you want to insert
    -----------   ------------------------
    first_name    'Ali'
    last_name     'Khan'
    username      'alik'
    password      '123'
    email         'alikhan@gmail.com'
    [address]     'Male'
    gender        '19930318'
    dob           '20170318'
    reg_date      'Pakistan'
    country       'Karachi'
    city
    status
    

    您缺少一些值。错误清楚地表明了这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多