create table Users(
UsersId int primary key not null identity(0,1),
UserName varchar(20) ,
NickName nvarchar(20),
UserPwd varchar(20),
OKUserPwd varchar(20),
BallAge nvarchar(20),
ComeFrom nvarchar(20)
)create proc S_Users
@UserName varchar(20),@NickName nvarchar(20),
@UserPwd varchar(20), @OKUserPwd nvarchar(20),
@BallAge nvarchar(20),@ComeFrom nvarchar(20)
as
insert into Users values(@UserName,@NickName,@UserPwd,@OKUserPwd,@BallAge,@ComeFrom)create table UserDetials(
UserDetialsId int primary key not null identity(0,1),
[Name] nvarchar(10),
Email varchar(30),
Age int ,
QQ int,
Address nvarchar(20),
HowToKnow nvarchar(20),
PlayType nvarchar(20),
ImageTitle nvarchar(30),
DetialsId int  foreign key references Users(UsersId), 
)
create proc S_UserDetials
@Name nvarchar(10),@Email varchar(30),@Age int,
@QQ int ,@Address nvarchar(20),@HowToKnow nvarchar(20),
@PlayType nvarchar(20),@ImageTitle nvarchar(30)
as
insert into UserDetials values (@Name,@Email,@Age,@QQ,@Address,@HowToKnow,@PlayType,@ImageTitle)
在创建第2张表的存储过程的时候出现如下错误:
消息 213,级别 16,状态 1,过程 S_UserDetials,第 6 行
插入错误: 列名或所提供值的数目与表定义不匹配。为什么?

解决方案 »

  1.   

    insert into UserDetials 
    (要把字段列出来)
      

  2.   

    UserDetials如果没有写对应字段默认是所有的字段,所以你最好把字段列出来和参数对应好。
      

  3.   

    DetialsId 是外键
    UserDetialsId 是第2张表的主键
    这也需要插到存储过程?不要的吧。。
    那就是8列。为什么还说列名或所提供值的数目与表定义不匹配。
      

  4.   

    你的UserDetials 表有10个字段,而你插入的时候却只有8个字段,肯定会报错啦
    insert into UserDetials values (@Name,@Email,@Age,@QQ,@Address,@HowToKnow,@PlayType,@ImageTitle) 
      

  5.   

    create proc S_UserDetials 
    @Name nvarchar(10),@Email varchar(30),@Age int, 
    @QQ int ,@Address nvarchar(20),@HowToKnow nvarchar(20), 
    @PlayType nvarchar(20),@ImageTitle nvarchar(30) 
    as 
    insert into UserDetials values (@Name,@Email,@Age,@QQ,@Address,@HowToKnow,@PlayType,@ImageTitle) 
    我不是已经列出8个了吗?
      

  6.   

    你是列出的值,没有列出字段名正确的语法是insert into table(field1,field2 ....)
    values(值1,值2....)