本帖最后由 qyj2009 于 2010-12-06 23:53:00 编辑

解决方案 »

  1.   

    有默认值或自增列的字段不需要赋值.INSERT INTO ManagerUser
    (
    UserName  ,
    UserPassword 
    )
    VALUES
    (
    @pUserName,
    @pUserPassword
    )
      

  2.   


    这样执行 EXEC  spManagerUserInsert 'admin3','123456'  ?错误  消息 8114,级别 16,状态 5,过程 spManagerUserInsert,第 0 行
    从数据类型 varchar 转换为 int 时出错。
      

  3.   

    CREATE PROC spManagerUserInsert  @pUserID        INT  OUTPUT,
      @pUserName      NVARCHAR(20) ,
      @pUserPassword  NVARCHAR(20) ,
      @pUserSort      NVARCHAR(12)  
    AS那是因为你存储过程定义了多个参数.
    我的意思是,你的插入语句那里不需要考虑有默认值或自增列的列.
      

  4.   

    (不需要考虑有默认值或自增列的列. 怎么理解)
    正常的SQL语句
    INSERT INTO ManagerUser VALUES('zhangsan','123') --identity 和default都不写
    看看数据是什么,UserSort自动是 系统操作员
    这就是默认值,插入时,你不指定它,它就自动用默认值
      

  5.   


    INSERT INTO ManagerUser VALUES('zhangsan','123') 这一句必须写DEFAULT 要不然会报错还有就是我的存储过程若是不定义@pUserSort 那么我在前台给其是赋不了值的exec [spManagerUserInsert] 'admin6','123','系统管理员'消息 8144,级别 16,状态 2,过程 spManagerUserInsert,第 0 行
    为过程或函数 spManagerUserInsert 指定了过多的参数。这个要怎么解决呢 
      

  6.   

    --因为不确定默认值,试一下下面的
    CREATE PROC spManagerUserInsert  @pUserID        INT  OUTPUT,
      @pUserName      NVARCHAR(20) ,
      @pUserPassword  NVARCHAR(20) ,
      @pUserSort      NVARCHAR(12)  DEFAULT '系统操作员'
    AS
    --同理另一个存储过程